实体框架数据库迁移

时间:2014-05-20 02:19:00

标签: c# sql .net asp.net-mvc entity-framework

在我的应用程序中,我使用了Entity Framework Database First方法。 目前我的应用程序位于Dev Environment中,现在需要将其移至测试环境中,然后再移至生产环境中。

无论如何,我可以使用.net功能或实体框架功能在Test环境中迁移/创建数据库。除了使用SQL功能还原数据库。 另请注意,如果有任何增强功能,那么数据库结构可能会发生变化,表模式可能会发生变化。

因此,您可以建议我在不丢失现有数据的情况下轻松迁移数据库架构的最佳方法。

3 个答案:

答案 0 :(得分:1)

使用Database First,复制模式的最简单方法是在管理工作室中提取数据层应用程序,在目标上创建一个空数据库,将其注册为具有相同名称的数据层应用程序,然后升级空数据库使用升级后的文件。您可以重复此步骤来管理架构更改。

话说回来后,您最好将数据库优先转换为Code First,因为它将使您的部署中的变更管理变得更加容易。

答案 1 :(得分:1)

迁移是处理它的最佳方式 更新生产数据库的首选方法是首先生成sql文件,然后在生产环境中运行sql文件。

MS在这个

上有很好的艺术

http://msdn.microsoft.com/en-in/data/jj591621.aspx#script

答案 2 :(得分:1)

如果您想利用EF-Migrations功能,您必须将您的应用程序转换为使用现有数据库的代码优先http://msdn.microsoft.com/en-us/data/jj200620.aspx

如果您无法先转换为代码,则必须手动创建更新脚本。

  1. 使用schema compare tool,比较开发和生产服务器。
  2. 对于找到的每个差异,请创建更新查询。
  3. 完成整个脚本后,在登台服务器上对其进行测试。
  4. 自动迁移非常危险,这取决于您对架构所做的类型和大小更改。如果更改需要数据移动(移动数据),则您无法信任任何单个功能或工具。

    以下链接可能对您有所帮助: