我正在使用pg_dump(纯文本格式)转储我的 Postgres 数据库,然后使用psql(带有-f
选项)简单地恢复它。
这引出了一个问题:不使用pg_restore似乎是一个专门的恢复工具(与 generic 相比),我是否遗漏了任何东西psql
?
pg_dump
我可以通过使用参数来控制诸如禁用触发器之类的选项。那么,是pg_restore
用来做什么的呢?非纯文本转储格式 ?
我正在使用pg_dump(纯文本格式)转储我的 Postgres 数据库,然后使用psql(带有-f
选项)简单地恢复它。
这引出了一个问题:不使用pg_restore似乎是一个专门的恢复工具(与 generic 相比),我是否遗漏了任何东西psql
?
pg_dump
我可以通过使用参数来控制诸如禁用触发器之类的选项。那么,是pg_restore
用来做什么的呢?非纯文本转储格式 ?
如果您创建了 SQL 格式的转储,那么您只能使用
psql
.如果您创建了自定义格式 (
pg_dump -Fc
) 或目录格式 (pg_dump -Fd
) 转储,您可以并且必须使用pg_restore
.与普通 SQL 脚本转储相比,自定义和目录格式转储提供了很多优势,我专门使用它们。您可以选择性地仅恢复某些表/模式,可以选择在恢复时是否仅包含模式、仅数据或两者都包含等。您可以在恢复时选择许多您必须在
pg_dump
SQL 格式转储时指定的选项 -如果您使用自定义格式转储和pg_restore
.如果不是为了向后兼容,我敢肯定默认
pg_dump
是-Fc
(自定义)格式。您无法将 SQL 格式的转储转换为自定义格式或目录格式,而无需将其还原到 PostgreSQL 数据库,然后转储还原的数据库。