检查实体框架中的待定迁移?

时间:2017-01-07 08:45:11

标签: entity-framework entity-framework-6

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

升级它们
Update-Database -ConnectionStringName DEV 

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

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

1 个答案:

答案 0 :(得分:15)

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

Get-Migrations -ConnectionStringName PROD

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

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

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