微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无论如何导出PostgreSQL架构压缩?

当我在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所说的中间更多.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐