13

当涉及到数据库模式时,我总是发现版本控制有点问题。

所以 - 我目前正在评估实体框架代码优先迁移,到目前为止我印象非常深刻。

我的问题是,有没有人有在使用 DVCS 的团队中使用迁移的经验?

如果在不同分支上工作的开发人员各自创建自己的迁移,那么当分支合并时,“更新数据库”工具能否很好地应对?

我想可能发生的情况是列表中间会出现一个新的迁移。然后这会被拾起,还是只是寻找比上次部署的“更新”的迁移?

我很欣赏团队将不得不小心不要创建冲突的架构更改 - 这是我们可以管理的 - 但是知道“更新数据库”是否足够聪明以发现“丢失”迁移会很有用?

谢谢, - 克里斯

4

3 回答 3

1

根据我可以找到的关于该主题的一篇文,似乎并行开发(无论使用哪种 VCS 工具)都与 EF 中数据库迁移的当前状态存在问题。由于它如何跟踪数据库的状态,似乎没有办法处理这种情况。Pawel在 GitHub 上提供了一个示例项目来显示该问题。

实际上,使用独立工具来处理数据库迁移可能会好得多。我使用Migrator.NET取得了很大的成功,它确实可以正确处理并行开发人员的架构更改。它还使用一种技术含量相对较低的方法来跟踪数据库“版本”,只要您和您的团队决定哪一天除了通过迁移类(我们称之为那一天v1 数据库)。

于 2012-09-26T01:13:33.583 回答
1

本文中的解决方案可能对您有用。您需要创建一个忽略其他开发人员更改的空白迁移的额外步骤。这会将快照更新为与数据库同步。

http://msdn.microsoft.com/en-us/data/dn481501.aspx

于 2014-08-08T15:24:55.923 回答
0

我认为它不起作用,我认为没有办法解决它。

有关更多详细信息,请参阅此博客文章

我的建议是使用不同的工具来管理您的迁移。

于 2012-09-26T01:18:10.420 回答