現在、ダウンタイムなしでこれを行う可能性はありません。私も嫌いです。
このコンソールコマンドは、私が考えることができる最小の時間でそれを行います
git push heroku master &&
heroku maintenance:on &&
sleep 5 &&
heroku run rails db:migrate &&
sleep 3 &&
heroku ps:restart &&
heroku maintenance:off
git push heroku master
マスターブランチをherokuにプッシュする
heroku maintenance:on
メンテナンスを行うため、500 はありません
sleep 5
dyno が新しいコードを起動できるようにします (これがないと、移行が失敗する可能性があります)
heroku run rails db:migrate
実際の移行を行う
heroku ps:restart
経験から、再起動により、新しいdynoに最新のスキーマがあることが確認されます
heroku maintenance:off
メンテナンスの順番
-a <app name>
複数のアプリがある場合は、すべての heroku コマンドの後ろに追加する必要がある場合があります。
たった 1 つのコマンドで、これらを Mac OSX のターミナルで連続して実行できます。