将现有数据库导入新的 Dokku 应用程序

Importing existing database into new Dokku application

我有一个现有的应用程序,我正在尝试将其移植到 Dokku, and part of that is getting the existing data store copied over. I am using the Dokku Postgres plugin,但在移植数据库时遇到问题。

在我现有的应用程序中,我正在创建数据库转储:

// 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 man page) and pg_restore command seems to only accept custom format from pg_dump (cf. pg_restore man) , 所以你应该在 pg_dump 命令中使用相同的 -Fc 参数。