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

将现有PostgreSQL数据库导入新Dokku应用时pg_restore报错求助

错误根因

你默认用pg_dump不加参数导出的是纯文本SQL格式的转储文件,Dokku Postgres插件的postgres:import命令底层调用pg_restore工具,该工具仅支持导入非文本的归档类转储格式,因此直接导入会触发报错。


方案1:直接使用现有文本格式转储文件导入(无需重新导出)

不需要调整原有转储文件,通过Dokku Postgres的psql命令直接执行文本SQL导入:

  • 确认你的Dokku Postgres服务名称(示例中为db,如果实际名称不同自行替换),在服务器上执行如下命令即可:
dokku postgres:psql db < db.dump

该方案无需重新导出数据,操作最快,适配绝大多数场景。


方案2:导出符合postgres:import要求的归档格式转储后导入

如果需要使用postgres:import的内置特性(比如自动覆盖逻辑、进度展示等),可以重新导出指定格式的转储文件:

  1. 在原有应用环境重新导出Postgres自定义格式转储:
pg_dump -Fc app_database > db_custom.dump

参数-Fc指定输出为Postgres自定义归档格式,适配pg_restore工具要求
2. 把新的转储文件传输到Dokku服务器后,执行导入命令即可:

dokku postgres:import db < db_custom.dump

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:27:00