PSQL 等效于 .sql 文件的pg_restore



我只将我的数据库转储为 *.sql 文件而不是 *.dump 文件。因此,pg_restore命令都不起作用。我一直在阅读答案,我发誓大多数人都有阅读障碍,哈哈

我要求在psql中使用通用pg_restore命令行方法来还原数据库。我无意将我的数据库转储为 *.dump。

我的问题是这样的:相当于什么: pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d my_db db/latest.dump使用psql

所以。。。

大致如下: psql --verbose --clean --no-acl --no-owner -h localhost -U myuser -d my_db db/latest.sql

对于 SQL 转储,您需要决定是否要在转储数据库时删除目标对象,而不是在导入数据库时删除目标对象。

因此,您需要使用:

pg_dump --clean ....

然后,SQL 转储将包含必要的 DROP 语句。

另一种选择是在执行导入之前运行drop owned by current_user。但是,这要求所有内容都归执行导入的用户所有(因此您不能运行导入,例如 postgres (

这可以与运行 SQL 转储结合使用:

psql -U your_user -d your_db -c 'drop owned by current_user' -f your_dump.sql

相关内容

  • 没有找到相关文章

最新更新