PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Applications d'examen Heroku :copiez la base de données pour examiner l'application

J'ai rencontré le même problème et voici comment je l'ai résolu.

  1. 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 est postgresql://username:[email protected]:port/db_name .

  2. Dans votre app.json assurez-vous de copier cette variable.

  3. Dans votre app.json fournir une nouvelle base de données qui définira le DATABASE_URL variable d'environnement.

  4. 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"
    }
  ]
}