我正在对 EF5 进行一些研究,并遇到了这个问题。
答案中的主张对我来说很有意义。
但是现在,在 EF5 中,我们有了迁移。所以假设我已经使用 Code First 构建了一个应用程序,现在它已经启动并运行了一段时间,并且敏感的用户数据已经在数据库中累积。考虑模型需要一些更改的情况。
只更新 POCOS 并让 Migrations 负责更新数据库是否完全安全,或者是否需要做任何准备以防止数据丢失?
(希望有人在实时应用程序中进行了 Code First 和迁移的工作设置)
我正在对 EF5 进行一些研究,并遇到了这个问题。
答案中的主张对我来说很有意义。
但是现在,在 EF5 中,我们有了迁移。所以假设我已经使用 Code First 构建了一个应用程序,现在它已经启动并运行了一段时间,并且敏感的用户数据已经在数据库中累积。考虑模型需要一些更改的情况。
只更新 POCOS 并让 Migrations 负责更新数据库是否完全安全,或者是否需要做任何准备以防止数据丢失?
(希望有人在实时应用程序中进行了 Code First 和迁移的工作设置)
首先,在生产中确保您的 DbMigrationsConfiguration 设置为AutomaticMigrationsEnabled = false
. 然后在更改模型后,执行命令Add-Migration
。这将生成更改数据库的命令,您可以在执行之前查看是否删除了某些内容。这样您就可以完全控制数据库上发生的事情。
进行任何类型的数据库更改从来都不是完全安全的,因为您可能在迁移代码中犯了错误,或者可能存在导致问题的磁盘错误......确实有很多潜在问题,所以您必须在做之前进行备份迁移或任何其他类型的数据库更改。