2

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

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

我认为发布阶段是答案,但考虑到这些考虑,我认为我不能在那里访问用户数据。

4

1 回答 1

1

看来我对发布阶段的保留是没有根据的。作为发布阶段的一部分,您可以很好地迁移数据。对于其他尝试相同操作的人,我使用了data_migrate ruby​​ gem,效果很好。然后我更新了我的 Procfile 以包括以下内容:

release: rails db:migrate:with_data

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

于 2018-06-10T16:12:02.750 回答