28

在EF项目中,是否有任何设置AutomaticMigrationsEnabled的最佳做法?AutomaticMigrationsEnabled是false还是true?

更多声明:

在我们的团队修改,我们通常运行模式后,“添加迁移”和“更新DATABSE”在包管理器控制台命令。

每当这种情况发生的第一调整应该Check In整个项目等都有GET修改的“因为它正在使用中,无法删除数据库”:当其他开发运行该项目,该错误引发对象。在很多情况下,我们不想检查已经创建的模型和迁移!

这种情况是烦人的,是否有这样那样的问题的任何解决方案。 在此先感谢。

回答

41

自动迁移为你做所有的魔法,但他们不允许严格的版本(你不必为每个版本的特别固定的迁移)。如果没有严格的版本控制,你不能跟踪数据库的版本,你不能做明确的升级(你根本不能降级)。

如果你不打算使用的版本,你需要知道数据库是什么版本,如果你不打算使用降级,你可以简单地使用自动迁移。

它看起来像你的共享数据库=显示塞在工作“因为它正在使用中,无法删除数据库”。每个开发者应该使用他自己的数据库

但不想签出已创建的模型和迁移!

这是一个最佳实践,如果您想继续使用基于代码的迁移,您将不得不遵循它。顺便说一句。有一种称为“持续集成”的做法 - 在持续集成中,在提交成功构建并通过测试后,您应该立即得到

+0

谢谢。是的,我们正在共享数据库。你能告诉我们如何开始使用我们自己的数据库(文本,文章,书籍......任何意见将不胜感激!) – 2012-08-06 04:13:08

+4

你在寻找什么建议?只需在本地安装数据库服务器或在共享服务器上使用每个开发者的数在前一种情况下,您只需将连接字符串中的“数据源”更改为本地计算机,并且每位开发人员都将拥有自己的具有相同名称的数据库。后面的情况需要每个开发人员的连接字符串,因此您必须确保某些签入策略避免将开发人员特定的连接字符串存储在源代码管理中。 – 2012-08-06 07:21:18

+0

所以我们不需要任何共享数据库,OK!我设置了**数据源=(本地)** – 2012-08-06 07:49:27

10

来源:http://msdn.microsoft.com/en-us/data/jj554735.aspx

建议的团队环境

可以点缀自动和基于代码的迁移,但是这是在 团队开发的情况不建议使用。如果您是 使用源代码管理的开发团队的一员,则应使用 纯自动迁移或纯粹基于代码的迁移。鉴于自动迁移的 限制,我们建议在团队环境中使用基于代码的 迁移。

相关问题