postgresql - 将现有数据库导入新的 Dokku 应用程序
问题描述
我有一个现有的应用程序,我正试图将其移植到Dokku,其中一部分是复制现有的数据存储。我正在使用Dokku Postgres 插件,但无法将数据库移植过来。
在我现有的应用程序中,我正在创建数据库转储:
// Create dump file
pg_dump app_database > db.dump
// Copy over to server hosting Dokku app
scp db.dump sshdetails
// SSH into new server, then attempt to import dump file
dokku postgres:import db < db.dump
当我运行最后一个命令时,我收到以下消息:
pg_restore: error: input file appears to be a text format dump. Please use psql.
我尝试以几种不同的格式格式化转储,但没有运气。任何建议将不胜感激。谢谢
解决方案
从dokku-postgres插件中的dokku postgres:export
命令源:
docker exec "$SERVICE_NAME" env PGPASSWORD="$PASSWORD" pg_dump -Fc --no-acl --no-owner -h localhost -U postgres -w "$DATABASE_NAME"
该dokku postgres:export
命令具有导出转储作为适合输入的存档的-Fc
参数(更多信息进入pg_dump手册页),并且命令似乎只接受来自(参见pg_restore手册)的自定义格式,因此您应该在命令中使用相同的参数。pg_dump
pg_restore
pg_restore
pg_dump
-Fc
pg_dump
推荐阅读
- mysql - 如何从不同服务器中不同数据库中存在的表在服务器中的数据库中创建视图?
- python - 存储对象并在一个迭代周期中一个接一个地调用这些对象
- image - p5.js 图像直方图均衡化
- angular - 如何在 Angular 7 中使用 sessionStorage 而不是 localStorage?
- javascript - 单击具有相同类的所有按钮
- flutter - 如何按模型循环数据 Json
- r - R降价输出目录
- flutter - 在颤动中定时器到期后重置LinearPercentIndicator
- angular - 图表的源代码来自哪里...这里没有明确提到但是输出出现了..?
- mysql - 使用 API 在 Nodejs 中上传购物车产品的文件图像并将其转换为 base64