0

大多数(如果不是全部)现有迁移工具认为迁移历史是线性的。因此,当您创建新迁移时,您将获得版本 42 或其他版本,然后每个人都可以在收到您的更改后更新到此版本。

问题是如果您使用 DVCS,两个人可能同时拥有版本 42。这意味着解决冲突将变得非常重要,以至于令人痛苦。:)

所以我的问题是 - 我应该推出自己的系统还是在野外有什么?最好简单,对 *nix 友好。我打算将它主要与 mysql 和 postgresql 一起使用。

4

1 回答 1

0

在 Rails 中,处理这种情况的方式是将日期附加到文件的开头,格式为YYYYMMDDHHMMSS_migration_descriptor.rb.

然后,它通过跟踪版本号来跟踪已在表中应用了哪些迁移。这允许您在具有比最近更改“更低”的版本号的表上运行迁移,从而大大简化了 DVCS 问题。

你可能没有使用 Rails,但我认为他们解决这个问题的方式非常好。您可以在 API 文档Rails 指南中阅读有关 Rails 迁移的更多信息。

于 2011-05-18T19:57:24.013 回答