我想恢复一个PostgreSQL的数据库,但在此之前,我需要清空恢复目标数据库。
有没有psql的选项来做到这一点?
现在我使用一个命令行如下:
psql -U postgres db_test < testdb.sql
这里有两个选项 – 如果你的备份是纯文本,那么你添加-c选项到pg_dump – 即
pg_dump -c mydb > mydb.sql
否则,如果您在pg_dump上使用-Fc或-Ft,那么您在pg_restore上使用-c标志
pg_dump -Ft -b mydb > db.tar
pg_restore -c -d newdb db.tar
假设你正在谈论从pg_dump备份中恢复,答案是“这取决于备份是如何进行的”,但通常是:在恢复备份之前,必须清空数据库。
在Postgres中清空数据库的最快方法是删除并重新创build数据库(您可能需要超级用户权限),否则您必须手动删除每个表和您可能具有的任何存储过程( CASCADE是您的朋友在这里)。