2011-02-03 94 views
2

我们有一个相当规模的开发团队,在同一代码行上开发了一些并发项目。有时我们添加可以在开发环境中运行的迁移,但由于该项目的发布时间表,因此不应该在几个月内运行prod。这导致我们坚持使用Rails的原始编号迁移,而不是时间戳,因为我们可以轻松迁移到某个幻数,并在这个幻数之后进行所有的prod迁移。如何正确管理dev和prod环境的迁移?

这完全觉得我们做错了。我们仍然有开发人员创建相同编号迁移的问题。我们不能简单地在分支上保留一个项目一段时间,因为分支将与主干分离。

是否有任何人遇到过处理这种迁移问题的方法或工具?

+0

就我个人而言,我们从不在生产数据库上运行迁移。我们倾向于手动更改SQL。尽管如此,这是一个很好的问题+1 – 2011-02-03 19:48:34

回答

2

你肯定做错了;)

有效地管理多个“目标”,需要一个良好的VCS。我建议git或mercurial,因为良好的分支(和合并)支持是必不可少的。

  • 确实使用时间戳迁移:解决了重复问题。
  • 保留不应迁移到非生产分支上的生产。 您可以将'主'部署到生产环境中并在功能部门上开发,或者您可以拥有'生产'部门并在主环境中开发。无论如何,你不会在生产中运行迁移,直到你真的需要。
  • 经常将“生产”分支合并到您的开发分支中 - >分歧问题得到解决。
  • 如果只有一个人在主题分支上工作,他可以​​'git rebase'而不是合并生产分支以保持发展历史线性。
+0

完美!谢谢! – mculp 2011-02-03 20:01:43