在 Heroku Pipeline Promotion 上迁移数据

Migrating Data on Heroku Pipeline Promotion

我在 Heroku 上为我的 rails 应用程序使用管道。我有一个暂存应用程序,然后将其提升为生产应用程序。我 运行 在部署到暂存之前进行任何模式迁移,然后在我提升它时将 slug 移动到生产环境。

但现在我需要在下一次部署时迁移一些用户数据,我正在寻找一种方法来将此作为促销的一部分。我总是可以在促销完成后 运行 抽成任务,但这似乎非常冒险。理想情况下,代码应该 运行 在应用程序发布之前,如果出现问题则回滚。

我认为 Release Phases were the answer, but I don't think I can access user data there, given these considerations

看来我对Release Phases were unfounded. You can migrate data just fine as part of a release phase. For anyone else trying the same thing, I used the data_migraterubygem有所保留,效果很好。然后我更新了我的 Procfile 以包含以下内容:

release: rails db:migrate:with_data

这将运行我使用 gem 创建的所有数据迁移,如果出现任何问题,发布将中止。