从 pg_dump 中排除序列
Excluding sequences from pg_dump
我正在创建排除了一些 table 的 postgres 数据库 (10.1) 的导出。我按照 Is there a way to get pg_dump to exclude a specific sequence? 中的说明进行操作。但是,排除的 table 的序列仍然包含在内。有没有办法确保它们被拒之门外?
为了隔离问题,我创建了一个带有 table 的小型示例数据库,名为 include
和 exclude
,向每个 table 添加了一行,然后使用此命令导出数据库:
pg_dump --host=localhost --no-owner --no-acl --verbose --schema=public --dbname=export_test --exclude-table=exclude --file=exclude_table_only.dump
转储不包括 exclude
table,但它确实包括序列:
...
--
-- TOC entry 198 (class 1259 OID 3818320)
-- Name: exclude_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE exclude_id_seq
...
您应该能够使用另一个 --exclude-table:
明确排除序列
--exclude-table=exclude_id_seq
最终应该是这样的:
$ pg_dump --host=localhost --no-owner --no-acl --verbose --schema=public --dbname=export_test --exclude-table=exclude --exclude-table=exclude_id_seq --file=exclude_table_only.dump
排除table(s),
--exclude-table
会起作用。
对于排除序列,
--exclude-table-data
需要。
在 Postgres 12
上测试
我无法获得 --exclude-table
来排除序列,即 table 数据。
要转储的示例不包括序列,
$ pg_dump -v -C -Fp -O -x -h employee.us-east-1.rds.amazonaws.com \
-U user1 -d emp -n empschema \
--exclude-table="empschema.employee_history_id_seq" \
-f dump-test.sql
where,
-v : verbose
-C : create Database commands in dump
-Fp : output file in plain Text
-O : no owner details in dump
-x : no privileges details in dump
-h : hostname
-U : username
-d : database
-n : schema
--exclude-table-data : excluding the sequence
-f : file to be written into
如有异议请留言
我正在创建排除了一些 table 的 postgres 数据库 (10.1) 的导出。我按照 Is there a way to get pg_dump to exclude a specific sequence? 中的说明进行操作。但是,排除的 table 的序列仍然包含在内。有没有办法确保它们被拒之门外?
为了隔离问题,我创建了一个带有 table 的小型示例数据库,名为 include
和 exclude
,向每个 table 添加了一行,然后使用此命令导出数据库:
pg_dump --host=localhost --no-owner --no-acl --verbose --schema=public --dbname=export_test --exclude-table=exclude --file=exclude_table_only.dump
转储不包括 exclude
table,但它确实包括序列:
...
--
-- TOC entry 198 (class 1259 OID 3818320)
-- Name: exclude_id_seq; Type: SEQUENCE; Schema: public; Owner: -
--
CREATE SEQUENCE exclude_id_seq
...
您应该能够使用另一个 --exclude-table:
明确排除序列--exclude-table=exclude_id_seq
最终应该是这样的:
$ pg_dump --host=localhost --no-owner --no-acl --verbose --schema=public --dbname=export_test --exclude-table=exclude --exclude-table=exclude_id_seq --file=exclude_table_only.dump
排除table(s),
--exclude-table
会起作用。
对于排除序列,
--exclude-table-data
需要。
在 Postgres 12
上测试我无法获得 --exclude-table
来排除序列,即 table 数据。
要转储的示例不包括序列,
$ pg_dump -v -C -Fp -O -x -h employee.us-east-1.rds.amazonaws.com \
-U user1 -d emp -n empschema \
--exclude-table="empschema.employee_history_id_seq" \
-f dump-test.sql
where,
-v : verbose
-C : create Database commands in dump
-Fp : output file in plain Text
-O : no owner details in dump
-x : no privileges details in dump
-h : hostname
-U : username
-d : database
-n : schema
--exclude-table-data : excluding the sequence
-f : file to be written into
如有异议请留言