0

我正在开发 ac# web 应用程序。目前我正在我的本地主机上进行测试,就像在 Visual Studio mvc c# 本地主机中一样。我做了几个添加并创建了新表;我使用了迁移。每次我启用迁移,然后添加迁移,然后更新数据库。现在这是我的问题。所有这些迁移都发生在我的本地主机上,现在在生产中,在我发布到我的 www root 后,这些更改会自动发生,当我从本地主机复制到生产时,我会丢失生产数据库内容吗?

基本上我想要的只是新的表字段和结构,而不是要发布或复制到生产中的内容。

谢谢

4

2 回答 2

2

假设您使用的是 EntityFramework。

现在在生产中,在我发布到我的 www 根生产后,这种变化会自动发生吗?

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

当我从本地主机复制到生产环境时,我会丢失生产数据库内容吗?

如果您的意思是数据,则使用“内容”一词;如果您的意思是应用迁移,则使用“复制”一词,那么 EF 还没有本机数据移动支持。因此,您不应失去内容的完整性。尽管如果需要,您可以在迁移中执行自定义 sql。是它的功能。Sql()

底线,如果你不使用DropCreateDatabaseIfModelChangesDropCreateDatabaseAlways在生产代码中你是相对安全的。

于 2013-08-18T07:06:11.373 回答
0

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

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

链接可提供有用的 EF 命令列表。

于 2013-08-18T06:02:25.687 回答