J'ai rencontré le même problème et voici comment je l'ai résolu.
-
Configurez l'URL de la base de données à partir de laquelle vous souhaitez copier en tant que variable d'environnement sur l'application de base pour le pipeline. Dans mon cas, il s'agit de
STAGING_DATABASE_URL
. Le format de l'URL estpostgresql://username:[email protected]:port/db_name
. -
Dans votre
app.json
assurez-vous de copier cette variable. -
Dans votre
app.json
fournir une nouvelle base de données qui définira leDATABASE_URL
variable d'environnement. -
Utilisez le script suivant pour copier sur la base de données
pg_dump $STAGING_DATABASE_URL | psql $DATABASE_URL
Voici mon app.json
fichier de référence :
{
"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"
}
]
}