在Heroku Pipeline升级中迁移数据

3
我正在Heroku上为我的Rails应用程序使用管道。我有一个暂存应用程序,然后将其提升为生产应用程序。在部署到暂存之前,我运行任何模式迁移,并在提升时将slug移动到生产环境。
但是现在我需要在下一次部署时迁移一些用户数据,并且我正在寻找一种在提升的同时完成此操作的方法。我可以在提升完成后始终运行rake任务,但这似乎非常冒险。理想情况下,代码应该在应用程序发布之前运行,并在出现任何问题时回滚。
我认为发布阶段是答案,但考虑到这些考虑因素,我不认为我可以在那里访问用户数据。
1个回答

2

看来我对 发布阶段 的顾虑是没有必要的。将数据迁移作为发布阶段的一部分可以很好地完成。对于其他尝试相同事情的人,我使用了 data_migrate ruby gem,它非常有效。然后我更新了我的Procfile文件,加入了以下内容:

release: rails db:migrate:with_data

这将运行使用该宝石创建的任何数据迁移,如果出现问题,则会中止发布。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接