当我在PostgreSQL中创建一个表时,我使用的SQL如下所示:
CREATE TABLE domain (
id serial,
domain character varying(60) NOT NULL,
banned boolean,
created timestamp NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
但是,当我导出模式时,我会获得一个完整的,未压缩的版本,其中包含拥有该表和完整序列的垃圾.无论如何在没有至少所有者部分的情况下获得出口?
CREATE TABLE domain (
id integer NOT NULL,
domain character varying(60) NOT NULL,
banned boolean,
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);
Run Code Online (Sandbox Code Playgroud)
最重要的是,我希望能够将模式传递给其他人(甚至可能不使用PostgreSQL),而无需手动编辑文件并删除特定于我的数据库用户的部分.简短的手也更容易阅读.
像这样的事情会让你到达那里:
pg_dump --schema-only \
--no-owner \
--no-privileges \
--table=$TABLE_NAME \
$DATABASE_NAME
Run Code Online (Sandbox Code Playgroud)
您仍然可以SET...在顶部看到所有内容,在末尾看到约束、序列和索引。
您也许可以调整输出
echo "\d $TABLENAME" | psql -d $DATABASE -U $USER
Run Code Online (Sandbox Code Playgroud)
只需编写一点脚本即可实现您想要的内容。
您也可以在系统表中查找所需的内容,但这可能比手动删除中间内容要更多的工作pg_dump。
| 归档时间: |
|
| 查看次数: |
2135 次 |
| 最近记录: |