在Entity Framework 6中,我使用Update-Database命令来应用迁移。我有三个环境,我玩杂耍(DEV,QA和PROD),并使用
升级它们Update-Database -ConnectionStringName DEV
但是,现在我想知道我的PROD环境在哪个迁移,以及如果我调用Update-Database将会应用哪些迁移。
是否有命令用于检查哪个迁移是应用的最新迁移,如果我运行Update-Database,哪个迁移将被应用?
答案 0 :(得分:15)
要查看哪些迁移已应用于数据库,请使用命令Get-Migrations
:
Get-Migrations -ConnectionStringName PROD
您还可以检查正确数据库中表__MigrationsHistory
的内容。它包含有关应用于数据库的所有迁移的信息。
应用的下一次迁移取决于项目中的现有迁移文件。迁移文件名包含一个时间戳,该时间戳指定生成迁移文件的时间(除非您使用可能导致重用现有迁移文件的-force
参数,并保留其现有的时间戳字符串)。根据该时间戳应用迁移。因此,迁移文件的字母顺序表示它们的应用顺序。
检查接下来将应用哪个迁移的一种安全方法是使用Update-Database
参数运行-Script
,该参数会为迁移生成SQL脚本但不会运行它。因此,如果您运行真实Update-Database
,则可以查看将应用哪些迁移。