2010-07-11 295 views
2

据我所知,迁移的重点在于,您可以在开发的最后阶段将数据库恢复到已知状态。滚动迁移?

现在我仍然在“充实”我的第一个Rails应用程序,我想知道是否可以将我的迁移集中到更大的应用程序而不是几十个更改。

回答

4

迁移的关键在于您基本上拥有数据库更改的日志,因此其他开发人员可以知道进行了哪些更改或确保您的生产环境获得了与开发过程中所做的更改相同的更改。

至于你的问题:当然。如果您创建了新模型,并在几分钟后决定“此列可能只是字符串而不是文本”,请回滚您的迁移,然后更改列,然后再次迁移。无需创建新的迁移。

除非您已经将以前的迁移迁移到其他开发人员可能已获取的源代码管理,或者您已经在生产服务器上应用迁移。那么你应该使用新的迁移。

1

作为rspeicher的补充,我限制了迁移是否已经发布的限制,而不是它是否已经提供给其他开发人员。如果它仍然是预发行版,那么可以通过使用所使用的SCM的后取指针挂钩来向开发团队通知任何需要为主代码存储库的任何更新运行迁移的需要。任何配置管理更改都是如此,而不仅仅是迁移。例如,更改initializers文件夹中的某些内容的实现可能对开发模式下运行的脚本/服务器实例没有影响。这对于绝大多数技术团队以及持续集成的一些配置来说,最终是一个必要的机制。或者,您需要团队中良好的沟通渠道来确保每个人都知道配置更改和重新启动是必要的。