Me encontré con este mismo problema y así es como lo resolví.
-
Configure la URL de la base de datos desde la que desea copiar como una variable de entorno en la aplicación base para la canalización. En mi caso, esto es
STAGING_DATABASE_URL
. El formato de URL espostgresql://username:[email protected]:port/db_name
. -
En tu
app.json
asegúrese de copiar esa variable. -
En tu
app.json
aprovisione una nueva base de datos que establecerá elDATABASE_URL
variable de entorno. -
Utilice el siguiente script para copiar la base de datos
pg_dump $STAGING_DATABASE_URL | psql $DATABASE_URL
Aquí está mi app.json
archivo de referencia:
{
"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"
}
]
}