我想恢复 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
是您的朋友)。