【问题标题】:Setup automatice database migration on Heroku after push推送后在 Heroku 上设置自动数据库迁移
【发布时间】:2018-11-26 09:47:44
【问题描述】:
我已经设法将我的 Heroku 应用程序设置为在 git 推送到 Github 时自动部署。我看到 Heroku 本身提供了Deploy Hooks,但这些似乎是为了与其他服务集成。
我想做的是查看是否推送了任何包含 sql 迁移的更改文件,如果是,则执行一个简单的 bash 命令,在我的 Django 应用程序上执行最新迁移,例如在 git post-update 挂钩中。
如何在 Heroku 上进行设置 - 我在我的应用中看不到任何 .git 文件夹?
【问题讨论】:
标签:
git
github
heroku
database-migration
githooks
【解决方案1】:
Heroku 的release phase 是您正在寻找的。它的主要用例之一是与新版本一起运行数据库迁移。您可以在Procfile 中定义release 进程。例如,对于一个典型的 Rails 应用程序来说,它可能看起来像这样:
web: bundle exec puma -C config/puma.rb
worker: bundle exec sidekiq
release: bundle exec rake db:migrate
而您希望在release 进程中为您的应用程序交换适当的迁移命令。