HerokuにDeployしたタイミングでdb:migrateを実行したい

More than 1 year has passed since last update.

[追記]

最近だと、Release Phaseという機能を使うのがよさそうです

http://qiita.com/m_nakamura145/items/2eafb2dc9f8a459670b6


https://devcenter.heroku.com/articles/getting-started-with-rails4#migrate-your-database

この辺とか見ると、普通にmigrateを実行する感じである。

heroku run rake db:migrate

でもどうせならDeployしたタイミングで自動で反映させて欲しい。手でいちいち打つのは面倒くさいのである。

そこで以下のBuildpackを使う

https://github.com/gunpowderlabs/buildpack-ruby-rake-deploy-tasks

heroku buildpacks:set https://github.com/heroku/heroku-buildpack-ruby

heroku buildpacks:add https://github.com/gunpowderlabs/buildpack-ruby-rake-deploy-tasks
heroku config:set DEPLOY_TASKS='db:migrate cache:clear'

こんな感じで設定するとDeployする時に勝手に実行してくれるようになる。

最近は

https://github.com/winebarrel/ridgepole

これを使っているので、rakeタスクを作って、

heroku config:set DEPLOY_TASKS='ridgepole:apply'

こんな感じに設定している。ridgepole:applyのrakeタスクは以下のサイトのような感じに作ってる。

http://fujiyasu.hatenablog.com/entry/2015/06/21/140826


所感

ridgepole最高です。(タイトルと関係ない)