私はこれと同じ問題に遭遇しました、そしてこれが私がそれを解決した方法です。
-
コピー元のデータベースURLを、パイプラインのベースアプリの環境変数として設定します。私の場合、これは
STAGING_DATABASE_URL
です。 。 URL形式はpostgresql://username:[email protected]:port/db_name
。 -
app.json
で ファイルは必ずその変数をコピーしてください。 -
app.json
でDATABASE_URL
を設定する新しいデータベースをプロビジョニングします 環境変数。 -
次のスクリプトを使用して、データベースをコピーします
pg_dump $STAGING_DATABASE_URL | psql $DATABASE_URL
これが私のapp.json
です 参照用ファイル:
{
"name": "app-name",
"scripts": {
"postdeploy": "pg_dump $STAGING_DATABASE_URL | psql $DATABASE_URL && bundle exec rake db:migrate"
},
"env": {
"STAGING_DATABASE_URL": {
"required": true
},
"HEROKU_APP_NAME": {
"required": true
}
},
"formation": {
"web": {
"quantity": 1,
"size": "hobby"
},
"resque": {
"quantity": 1,
"size": "hobby"
},
"scheduler": {
"quantity": 1,
"size": "hobby"
}
},
"addons": [
"heroku-postgresql:hobby-basic",
"papertrail",
"rediscloud"
],
"buildpacks": [
{
"url": "heroku/ruby"
}
]
}