无论如何导出PostgreSQL架构压缩?
发布时间:2020-12-13 18:06:06 所属栏目:百科 来源:网络整理
导读:当我在PostgreSQL中创建一个表时,我使用的SQL如下所示: CREATE TABLE domain ( id serial,domain character varying(60) NOT NULL,banned boolean,created timestamp NOT NULL); 但是,当我导出模式时,我会获得一个完整的,未压缩的版本,其中包含拥有该表和完
当我在PostgreSQL中创建一个表时,我使用的SQL如下所示:
CREATE TABLE domain ( id serial,domain character varying(60) NOT NULL,banned boolean,created timestamp NOT NULL ); 但是,当我导出模式时,我会获得一个完整的,未压缩的版本,其中包含拥有该表和完整序列的垃圾.无论如何在没有至少所有者部分的情况下获得出口? CREATE TABLE domain ( id integer NOT NULL,created timestamp without time zone NOT NULL ); ALTER TABLE public.domain OWNER TO postgres; CREATE SEQUENCE domain_id_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; ALTER TABLE public.domain_id_seq OWNER TO postgres; ALTER SEQUENCE domain_id_seq OWNED BY domain.id; SELECT pg_catalog.setval('domain_id_seq',3,true); 最重要的是,我希望能够将模式传递给其他人(甚至可能不使用PostgreSQL),而无需手动编辑文件并删除特定于我的数据库用户的部分.简短的手也更容易阅读.
这样的东西会让你成为那里的一部分:
pg_dump --schema-only --no-owner --no-privileges --table=$TABLE_NAME $DATABASE_NAME 你仍然会在顶部拥有所有SET …东西,并在最后拥有约束,序列和索引. 你也许可以按摩输出 echo "d $TABLENAME" | psql -d $DATABASE -U $USER 用一点脚本编写你想要的东西. 你也可以在系统表中找到你想要的东西,但这可能比手动砍掉pg_dump所说的中间更多. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |