使用基于EF代码的迁移,在执行代码的“获取最新版本”之后,如果要运行迁移,则并不总是很明显。您可以查看迁移文件夹以查看是否有任何新的文件夹,或者您可以等到某些内容中断,并且可能很明显您的数据库已过期。这些选项都没有吸引我。
我不想启用自动迁移,我也不希望迁移始终在应用程序启动时运行,因为我可能尚未准备好它们。我每次收到最新版本时都可以运行 update-database (并且我没有自己的DB更改),但大多数情况下这是不必要的。
有没有一种简单的方法可以知道我的数据库已经过时,特别是在提取最新代码之后?
理想情况下,我设想的某种构建事件只会在最新情况发生后才会发生。
答案 0 :(得分:2)
您必须将模型与__MigrationsHistory表进行比较。 一种简单的方法是使用带有-script开关的update-databse。以这种方式进行比较,但可能的更改不会生效,而是在新文件中生成为SQL。
update-database -script
根据您的IDE和源代码控制系统,我确信您可以通过“拉”或“获取最新”事件来触发您的比较。