首页 > 解决方案 > 将现有数据库导入新的 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.

我尝试以几种不同的格式格式化转储,但没有运气。任何建议将不胜感激。谢谢

标签: postgresqldokku

解决方案


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_dumppg_restorepg_restorepg_dump-Fcpg_dump


推荐阅读