You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL:如何将.sql备份文件恢复至现有数据库

直接将Postgres备份恢复至现有数据库的方法

如果你想跳过删除重建数据库的步骤,直接将.sql备份恢复到现有数据库,可以按以下步骤操作:

  • 清理现有数据库对象
    首先连接到目标数据库,清空默认的public schema(这会删除该schema下的所有表、序列、视图等对象),并重建schema及授权:

    psql -h databaseHost -p 5432 -U databaseUser -d myDatabase -c "DROP SCHEMA public CASCADE; CREATE SCHEMA public; GRANT ALL ON SCHEMA public TO databaseOwner; GRANT ALL ON SCHEMA public TO public;"
    

    说明:DROP SCHEMA ... CASCADE会递归删除schema下所有依赖对象;后续的授权语句确保原所有者和公共用户拥有正确权限,可根据实际权限需求调整。

  • 恢复备份文件
    执行备份文件导入,将数据和表结构恢复到已清理的数据库中:

    psql -h databaseHost -p 5432 -U databaseUser -d myDatabase < myDatabase.sql
    

注意事项

  • 若你的数据库使用了public以外的自定义schema,需要针对这些schema执行类似的清理操作,确保所有旧对象被清除。
  • 确保执行命令的用户databaseUser拥有足够权限(如DROP SCHEMA、CREATE SCHEMA、CREATE TABLE等)。
  • 如果你的.sql备份文件是通过pg_dump的--clean参数导出的,备份文件本身会包含删除现有对象的语句,此时可跳过第一步的手动清理,直接执行恢复命令即可。

内容的提问来源于stack exchange,提问作者Sean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 14:55:31