我正在尝试了解如何轻松地将我的 PostgreSQL 数据库从 Heroku 迁移到 Railway。我尝试过使用
heroku pg:backups:capture --app APP_NAME
和 heroku pg:backups:download
与 pg_restore
但没有成功。
我有错误
pg_restore: error: corrupt tar header found in PGDMP (expected 0, computed 19471) file position 512
TL;博士:
heroku login
heroku run 'pg_dump $DATABASE_URL' > <filename.sql> --app <heroku-app-name>
PGPASSWORD=$PGPASSWORD psql -h $PGHOST -U $PGUSER -p $PGPORT -d $PGDATABASE -f <filename.sql>
详情:
如果运行
heroku login
后登录成功,$DATABASE_URL
将从您的Heroku环境中读取,因此无需手动插入数据库url。
<filename.sql>
:指定您喜欢的任何文件名。稍后您将使用它来导入数据库。
<heroku-app-name>
:带有 Postgres 数据库的 Heroku(后端)应用程序的名称。
在您的铁路项目中配置一个新的 PostgreSQL 数据库,并从“变量”选项卡中获取
$PGPASSWORD
、$PGHOST
、$PGUSER
、$PGPORT
和 $PGDATABASE
。
这就是它应该的样子
示例(使用虚拟凭据):
heroku login
heroku run 'pg_dump $DATABASE_URL' > mydatabasebackup.sql --app my-heroku-backend
PGPASSWORD=hjUasj8hasA6ahsjJaf3ash psql -h containers-us-west-15.railway.app -U postgres -p 6473 -W -F t -d railway mydatabasebackup.sql