2012-10-11 46 views
0
  1. 存储关于当前数据库状态的信息(应用了什么迁移)?我想它可以是“dbo .__ MigrationHistory”表或该表仅用于记录目的?实体框架5代码迁移

  2. 如果我启用了迁移,添加了迁移并更新了我的数据库。之后,我将代码签入SVN,另一位开发人员将其签出。这是另一位开发人员为创建/更新自己的数据库所做的事情吗?

我看到这样的选项:

1)调用Update-Database命令的时候了。

2)做一切从开始(启用迁移,添加迁移,更新数据库)。

3)除了跳过添加 - 迁移步骤(它已经存在,每个新开发者再次添加它似乎很奇怪)。

我的哪个假设是正确的,或者如果没有人是正确的方式?

回答

1
  1. 要检索哪些迁移已应用到数据库中,你可以使用Get-Migrations命令(reference)。

  2. 一切都取决于如何创建数据库,您使用的初始化程序。 This article is worth reading if you are unfamiliar with those.

    • 当使用DropCreateDatabaseAlways初始化,你并不真正需要关心更新数据库,因为您的数据库将被删除&在每个应用程序启动时重新创建。

    • 当使用DropCreateDatabaseWhenModelChanges initiliazer时,如果EF在应用程序启动时检测到模型已更改,您的数据库将被删除然后重新创建。

    • 使用CreateDatabaseIfNotExists初始化程序时,或者如果没有定义初始化程序,如果数据库尚不存在,将创建它。如果数据库已经存在&您添加了迁移,您(以及每位开发人员检索您的代码)需要使用Update-Database命令来更新数据库。

    • 在Code-First Migrations中引入了一个新的初始化程序:MigrateDatabaseToLatestVersion,此初始化程序自动将数据库更新到最新定义的Migration。 见本页的最后一节:http://msdn.microsoft.com/en-us/data/jj591621