恢复之前psql清空数据库

恢复之前psql清空数据库

我想恢复 postgreSQL 数据库,但在恢复之前我需要清空恢复目标数据库。

有没有 psql 选项可以做到这一点?

现在我使用如下命令行:

psql -U postgres db_test < testdb.sql

答案1

这里有两个选项 - 如果您的备份是纯文本,那么您可以将 -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

答案2

假设您正在谈论从pg_dump备份中恢复,答案是“这取决于备份是如何进行的”,但通常是的:您必须在恢复备份之前清空数据库。

清空 Postgres 中数据库的最快方法是删除并重新创建数据库(您可能需要超级用户权限),否则您必须手动删除每个表和您可能拥有的任何存储过程(这CASCADE是您的朋友)。

相关内容