试图完全自动化Heroku的
Review Apps(beta)应用程序. Heroku希望我们使用db / seeds.rb来种子最近开始实例的数据库.
我们没有这个应用程序的db / seeds.rb.我们希望设置一个脚本来复制当前父级(暂存)中的现有DB,并将其用作被审查的新应用程序的数据库.
这可以手动做:
heroku pg:copy myapp :: DATABASE_URL DATABASE_URL –app myapp-pr-1384 – 确认myapp-pr-1384
但我无法弄清楚如何将Heroku创建的应用程序名称添加到postdeploy脚本中.
有人试过这个,知道如何自动化?
我碰到了同样的问题,这里是我如何解决它.
>在管道的基础应用程序上设置要作为环境变量复制的数据库URL.在我的情况下,这是STAGING_DATABASE_URL. url格式是postgresql:// username:password @ host:port / db_name.
>在你的app.json文件中,确保将该变量复制过来.
>在你的app.json中提供一个新数据库,它将设置DATABASE_URL环境变量.
>使用以下脚本复制数据库pg_dump $STAGING_DATABASE_URL | psql $DATABASE_URL
这是我的app.json文件供参考:
{ "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,"scheduler": { "quantity": 1,"size": "hobby" } },"addons": [ "heroku-postgresql:hobby-basic","papertrail","rediscloud" ],"buildpacks": [ { "url": "heroku/ruby" } ] }