如何仅对表而不对触发器和函数执行 pg_dump?
How to do a pg_dump for only tables only and not triggers and functions?
我想要的:
我想要一个 pg_dump 的数据库(让我们将数据库称为 'test')。
在这个 pg_dump 中,我只想要 tables 而没有 以下内容:数据、触发器、函数、序列等
我正在做的是为了得到我想要的:
我运行的命令如下:
pg_dump -U postgres -s test > dump_test.sql
我观察到的:
然后,当我尝试按如下方式在另一台服务器上恢复此转储时:
pg_dump -U postgres new_amazing_test < dump_test.sql
我注意到上述命令 运行 的部分输出如下:
CREATE TRIGGER
CREATE FUNCTION
CREATE SEQUENCE
CREATE INDEX
我真正想要的是:
我想要的只是 table 本身,而不是这些触发器、函数、序列和索引。我如何只获得 tables?
其他我有的东西tried/considered:
我试过这样做:
pg_dump -U postgres -s -schema=\dtmvE test > dump_test.sql
但它不起作用,因为模式需要是名称而不是 \d 模式。
请参阅此处:https://www.postgresql.org/docs/13/app-pgdump.html 了解有关 -n pattern
选项的信息。
可以解决的一件事是使用多个开关,如下所示:
pgdump -t mytable1 -t mytable2 -t mytable3 ... -t mytableN > dump_test.sql
但是,上述解决方案不切实际,因为我的数据库中有 70 多个 table。
其他相关信息:
PostgreSQL 版本为 13.1
Ubuntu 版本 v16.04(我也在 Ubuntu v18.04 上试过)
我会在生成的转储中使用自定义格式的仅模式转储 (-F c -s
) 和 运行 pg_restore -l
转储所有内容。这为您提供了 table 的内容。从该文件中删除除 table 之外的所有内容,并将其用作 pg_restore -L
的输入,以从您需要的存档中准确还原那些项目。
这可能不像您希望的那么简单,但肯定比编写大量 -t
选项简单,而且您可以将其自动化。
我想要的:
我想要一个 pg_dump 的数据库(让我们将数据库称为 'test')。
在这个 pg_dump 中,我只想要 tables 而没有 以下内容:数据、触发器、函数、序列等
我正在做的是为了得到我想要的:
我运行的命令如下:
pg_dump -U postgres -s test > dump_test.sql
我观察到的:
然后,当我尝试按如下方式在另一台服务器上恢复此转储时:
pg_dump -U postgres new_amazing_test < dump_test.sql
我注意到上述命令 运行 的部分输出如下:
CREATE TRIGGER
CREATE FUNCTION
CREATE SEQUENCE
CREATE INDEX
我真正想要的是:
我想要的只是 table 本身,而不是这些触发器、函数、序列和索引。我如何只获得 tables?
其他我有的东西tried/considered:
我试过这样做:
pg_dump -U postgres -s -schema=\dtmvE test > dump_test.sql
但它不起作用,因为模式需要是名称而不是 \d 模式。
请参阅此处:https://www.postgresql.org/docs/13/app-pgdump.html 了解有关-n pattern
选项的信息。可以解决的一件事是使用多个开关,如下所示:
pgdump -t mytable1 -t mytable2 -t mytable3 ... -t mytableN > dump_test.sql
但是,上述解决方案不切实际,因为我的数据库中有 70 多个 table。
其他相关信息:
PostgreSQL 版本为 13.1
Ubuntu 版本 v16.04(我也在 Ubuntu v18.04 上试过)
我会在生成的转储中使用自定义格式的仅模式转储 (-F c -s
) 和 运行 pg_restore -l
转储所有内容。这为您提供了 table 的内容。从该文件中删除除 table 之外的所有内容,并将其用作 pg_restore -L
的输入,以从您需要的存档中准确还原那些项目。
这可能不像您希望的那么简单,但肯定比编写大量 -t
选项简单,而且您可以将其自动化。