对于.sql文件,psg等效于pg_restore

时间:2018-03-21 13:40:47

标签: postgresql psql pg-dump pg-restore

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

我要求在psql中使用公共pg_restore commandLine方法来恢复数据库。 我无意将我的数据库转储为* .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

1 个答案:

答案 0 :(得分:1)

使用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