大多数(如果不是全部)现有迁移工具都认为迁移历史是线性的。因此,当您创建新的迁移时,您将获得版本42或其他任何内容,然后每个人都可以在收到您的更改后更新到此版本。
问题在于,如果您使用DVCS,则两个人可以同时使用42版。这意味着解决冲突将变得非常微不足道,令人痛苦。 :)
所以我的问题是 - 我应该推出自己的系统还是在野外有什么东西?优选简单,友好* nix。我打算主要使用mysql和postgresql。
答案 0 :(得分:0)
在Rails中,处理此问题的方法是将日期附加到文件的开头,格式为YYYYMMDDHHMMSS_migration_descriptor.rb
。
然后通过跟踪版本号来跟踪表中应用了哪些迁移。这使您可以在版本号低于最新更改的表上运行迁移,从而大大简化了DVCS问题。
你可能没有使用Rails,但我认为他们解决这个问题的方式非常好。您可以阅读有关Rails迁移on the API docs或on the Rails guides的更多信息。