tutorial postgres plans delete create postgresql heroku heroku-toolbelt heroku-postgres

postgresql - postgres - Aplicaciones de revisión de Heroku: copie la base de datos para revisar la aplicación



heroku postgres tutorial (3)

Me encontré con este mismo problema y así es como lo resolví.

  1. Configure la url de la base de datos de la que desea copiar como variable de entorno en la aplicación base para la interconexión. En mi caso, esto es STAGING_DATABASE_URL . El formato de url es postgresql://username:password@host:port/db_name .

  2. En su archivo app.json , asegúrese de copiar esa variable.

  3. En su aplicación app.json una nueva base de datos que establecerá la variable de entorno DATABASE_URL .

  4. Utilice la siguiente secuencia de comandos para copiar en la base de datos pg_dump $STAGING_DATABASE_URL | psql $DATABASE_URL pg_dump $STAGING_DATABASE_URL | psql $DATABASE_URL

Aquí está mi archivo app.json para 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" } ] }

Intentando automatizar totalmente las aplicaciones de revisión de Heroku (beta) para una aplicación. Heroku quiere que usemos db/seeds.rb para sembrar el DB de la instancia recientemente spun up.

No tenemos un db/seeds.rb con esta aplicación. Nos gustaría configurar un script para copiar el DB existente del padre actual (en etapas) y usarlo como el DB para la nueva aplicación bajo revisión.

Esto puedo hacerlo manualmente:

heroku pg:copy myapp::DATABASE_URL DATABASE_URL --app myapp-pr-1384 --confirm myapp-pr-1384

Pero no puedo entender cómo obtener el nombre de la aplicación que Heroku crea en el script de post-implementación .

¿Alguien ha intentado esto y sabe cómo podría ser automatizado?


Una alternativa es compartir la base de datos entre las aplicaciones de revisión. Puedes heredar DATABASE_URL en tu archivo app.json .

PD: Esto es suficiente para mi caso, que es un equipo pequeño, tenga en cuenta que tal vez no sea suficiente para el suyo. Y mantengo mis datos de producción y prueba (o en etapas, o dev, como lo llames) separados.