推送后在 Heroku 上设置自动数据库迁移

Setup automatice database migration on Heroku after push

我已成功将我的 Heroku 应用程序设置为在 git 推送到 Github 时自动部署。我看到 Heroku 本身提供 Deploy Hooks,但这些似乎是为了与其他服务集成。

我想做的是查看是否推送了任何包含 sql 迁移的更改文件,如果是,则执行一个简单的 bash 命令,在我的 Django 应用程序上执行最新的迁移,例如在 git post-update 挂钩中。

我如何在 Heroku 上进行设置 — 我在我的应用程序中看不到任何 .git 文件夹?

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 过程中为您的应用程序交换适当的迁移命令。