在DVCS项目中使用实体框架代码优先迁移

时间:2012-04-24 12:56:28

标签: entity-framework dvcs ef-migrations

在数据库模式方面,我总是发现版本控制有点问题。

所以 - 我目前正在评估实体框架代码优先迁移,到目前为止,我真的很感动。

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

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

我想可能发生的事情是新的迁移会出现在列表的中间。这会被接收,还是只是寻找比上一次部署的“更新”的迁移?

我感谢团队必须小心不要创建冲突的架构更改 - 这是我们可以管理的 - 但是知道'Update-Database'是否足够聪明以发现'缺失'将会很有用迁移?

谢谢, - 克里斯

3 个答案:

答案 0 :(得分:1)

根据我在该主题上可以找到的那个blog post,似乎并行开发,无论VCS工具如何,都与EF中的数据库迁移的当前状态有关。由于它如何跟踪数据库的状态,似乎没有办法处理该场景。 Pawel提供example project on GitHub来显示问题。

使用独立工具处理数据库迁移实际上可能会好得多。我已经使用了Migrator.NET取得了很大的成功,它可以正确处理并行开发人员的架构更改。它还使用了一种相对低技术的跟踪数据库“版本”的方法,只要您和您的团队决定当天除了通过迁移课程(我们称之为当天)之外没有人会触及数据库,这一点非常有效。数据库的v1。)

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

我认为它不起作用,我认为没有办法绕过它。

有关详细信息,请参阅this blog post

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