我在Heroku上为我的rails应用程序使用管道。我有一个临时应用程序,然后升级到生产应用程序。我在部署到staging之前运行任何模式迁移,然后在我提升它时将slug移动到生产。
但现在我需要在下次部署时迁移一些用户数据,而我正在寻找一种方法来实现此功能,作为促销的一部分。促销完成后,我总是可以执行rake任务,但这似乎非常危险。理想情况下,代码应该在应用程序发布之前运行,如果出现任何问题则回滚。
我认为Release Phases是答案,但我不认为我可以在these considerations处访问那里的用户数据。
答案 0 :(得分:0)
似乎我对Release Phases的保留是没有根据的。作为发布阶段的一部分,您可以很好地迁移数据。对于其他尝试同样事情的人,我使用了data_migrate红宝石宝石,效果非常好。然后我更新了我的Procfile以包含以下内容:
release: rails db:migrate:with_data
这会运行我使用gem创建的任何数据迁移,如果出现任何问题,则会中止发布。