我正在开发 ac# web 应用程序。目前我正在我的本地主机上进行测试,就像在 Visual Studio mvc c# 本地主机中一样。我做了几个添加并创建了新表;我使用了迁移。每次我启用迁移,然后添加迁移,然后更新数据库。现在这是我的问题。所有这些迁移都发生在我的本地主机上,现在在生产中,在我发布到我的 www root 后,这些更改会自动发生,当我从本地主机复制到生产时,我会丢失生产数据库内容吗?
基本上我想要的只是新的表字段和结构,而不是要发布或复制到生产中的内容。
谢谢
我正在开发 ac# web 应用程序。目前我正在我的本地主机上进行测试,就像在 Visual Studio mvc c# 本地主机中一样。我做了几个添加并创建了新表;我使用了迁移。每次我启用迁移,然后添加迁移,然后更新数据库。现在这是我的问题。所有这些迁移都发生在我的本地主机上,现在在生产中,在我发布到我的 www root 后,这些更改会自动发生,当我从本地主机复制到生产时,我会丢失生产数据库内容吗?
基本上我想要的只是新的表字段和结构,而不是要发布或复制到生产中的内容。
谢谢
假设您使用的是 EntityFramework。
现在在生产中,在我发布到我的 www 根生产后,这种变化会自动发生吗?
这实际上取决于您的配置。默认情况下它不会,除非你告诉它。如果要自动升级应用任何挂起迁移的数据库,请注册MigrateDatabaseToLatestVersion
数据库初始化程序。
当我从本地主机复制到生产环境时,我会丢失生产数据库内容吗?
如果您的意思是数据,则使用“内容”一词;如果您的意思是应用迁移,则使用“复制”一词,那么 EF 还没有本机数据移动支持。因此,您不应失去内容的完整性。尽管如果需要,您可以在迁移中执行自定义 sql。是它的功能。Sql()
底线,如果你不使用DropCreateDatabaseIfModelChanges
或DropCreateDatabaseAlways
在生产代码中你是相对安全的。