PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Heroku Review Apps:Kopieren Sie die Datenbank, um die App zu überprüfen

Ich bin auf dasselbe Problem gestoßen, und hier ist, wie ich es gelöst habe.

  1. Richten Sie die Datenbank-URL, aus der Sie kopieren möchten, als Umgebungsvariable in der Basis-App für die Pipeline ein. In meinem Fall ist dies STAGING_DATABASE_URL . Das URL-Format ist postgresql://username:[email protected]:port/db_name .

  2. In Ihrer app.json kopieren Sie diese Variable unbedingt hinüber.

  3. In Ihrer app.json Stellen Sie eine neue Datenbank bereit, die die DATABASE_URL setzt Umgebungsvariable.

  4. Verwenden Sie das folgende Skript, um die Datenbank pg_dump $STAGING_DATABASE_URL | psql $DATABASE_URL

Hier ist meine app.json Referenzdatei:

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