PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

App di recensione di Heroku:copia il DB per recensire l'app

Ho riscontrato lo stesso problema ed ecco come l'ho risolto.

  1. Configura l'URL del database da cui vuoi copiare come variabile di ambiente nell'app di base per la pipeline. Nel mio caso questo è STAGING_DATABASE_URL . Il formato dell'URL è postgresql://username:[email protected]:port/db_name .

  2. Nel tuo app.json assicurati di copiare quella variabile.

  3. Nel tuo app.json fornire un nuovo database che imposterà il DATABASE_URL variabile di ambiente.

  4. Utilizzare lo script seguente per copiare nel database pg_dump $STAGING_DATABASE_URL | psql $DATABASE_URL

Ecco il mio app.json file di riferimento:

{
  "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"
    }
  ]
}