EF从Localhost迁移到生产

时间:2013-08-18 02:19:54

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

我正在开发一个c#web应用程序。目前我正在我的本地主机上测试,如在visual studio mvc c#local host中。我做了几个补充并创建了新表;我用过迁移。每次启用迁移,然后添加迁移,然后更新数据库。 现在这是我的问题。所有这些迁移都发生在我的本地主机上,现在正在生产中,在我发布到生产的www root后,这种更改是否会自动发生,当我从本地主机复制到生产时,我是否会丢失生产数据库内容?

基本上我想要的只是新的表格字段和结构不是要发布或复制到制作的内容。

感谢

2 个答案:

答案 0 :(得分:2)

假设您正在使用EntityFramework。

  

现在正在制作,在我发布到我的www root之后   生产,这种变化会自动发生吗?

这实际上取决于您的配置。默认情况下,除非你告诉它,否则它不会。如果要自动升级数据库,请应用任何挂起的迁移注册MigrateDatabaseToLatestVersion数据库初始化程序。

  

当我从中复制时,我会丢失生产数据库内容   当地主办生产?

单词 内容 如果您指的是数据,请 复制 如果你的意思是应用迁移那么 EF还没有原生数据动作支持。因此,您不应该丢失内容的完整性。虽然您可以根据需要在迁移中执行自定义sql。 Sql()就是这个功能。

最重要的是,如果您在生产代码中未使用DropCreateDatabaseIfModelChangesDropCreateDatabaseAlways,则相对安全。

答案 1 :(得分:0)

据我所知,如果您没有指定数据,数据不会更改,但您应该尝试创建一个带有生产数据库副本或还原的暂存环境,以测试迁移成功。

无论如何,根据您使用的迁移模式,生产数据库将受到影响。请查看此MSDN link以获取更多信息。

link表示可能有用的EF命令列表。