检查Entity Framework中的待定迁移?

Fro*_*rud 11 entity-framework entity-framework-6

在Entity Framework 6中,我使用Update-Database命令来应用迁移.我有三个环境,我玩杂耍(DEV,QA和PROD),并使用它们进行升级

Update-Database -ConnectionStringName DEV 
Run Code Online (Sandbox Code Playgroud)

但是,现在我想知道我的PROD环境在哪个迁移,以及如果我调用Update-Database,将应用哪些迁移.

是否有命令用于检查哪个迁移是应用的最新迁移,如果我运行Update-Database,哪个迁移将被应用?

Dia*_*ana 17

要查看已将哪些迁移应用于数据库,请使用以下命令Get-Migrations:

Get-Migrations -ConnectionStringName PROD
Run Code Online (Sandbox Code Playgroud)

您还可以__MigrationsHistory在正确的数据库中检查表的内容.它包含有关应用于数据库的所有迁移的信息.

应用的下一次迁移取决于项目中的现有迁移文件.迁移文件名包含一个时间戳前缀,该时间戳指定生成迁移文件的时间(除非您使用-force可能导致重用现有迁移文件的参数保留其现有时间戳字符串).根据该时间戳应用迁移.因此,迁移文件的字母顺序表示它们的应用顺序.

检查接下来将应用哪个迁移的一种安全方法是Update-Database使用-Script参数运行,该参数为迁移生成SQL脚本但不运行它.因此,如果运行真实的迁移,您可以看到将应用哪些迁移Update-Database.

  • 它在 EF Core 中不起作用。您需要直接检查数据库中的“__EFMigrationsHistory”表。它包含所有已应用的迁移的列表。 (3认同)
  • 谢谢,Update-Database -Script 听起来正是我正在寻找的。 (2认同)