检索自动迁移失败详细信息
Retrieve automatic migration fail details
在我的 ASP.NET Entity Framework 6 项目中,我添加了一个新的模型和控制器。
我启用了自动迁移但禁用了允许数据丢失。
当我 运行 应用程序进行这些更改后,新的 table 实际上已创建到数据库中,但应用程序告诉我:
Automatic migration was not applied because it would result in data loss
没有任何其他细节。正如我在其他问题中所读到的那样:
Database-Update -Script
得到 "differences" 但什么也没有发生,只是同样的错误信息。
我真的不想强制更新,除非我确定它会做什么。
如何获取当前迁移的内容?
我试图查看 dbo.__MigrationHistory table 但模型字段包含二进制数据。
更新
我能够使用 this 方法解码模型字段,但 edmx 文件仅包含数据库的整个图表,而不是迁移将发出的实际命令。
此外,即使按照工具本身的建议添加 -Verbose
标志:
PM> Update-Database -Verbose
Using StartUp project 'MyProject'.
Using NuGet project 'MyProject'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
它不显示 SQL 语句...
显示此消息是因为您可能对模型进行了一些更改,导致 DROP 命令(例如删除 属性)。
要查看特定迁移的脚本,即最新迁移与之前迁移之间的更新,您可以使用以下命令:
Update-Database -Script -SourceMigration: <migrationBeforeTheLastOne> -TargetMigration: <lastMigration>
如所述。
在我的 ASP.NET Entity Framework 6 项目中,我添加了一个新的模型和控制器。 我启用了自动迁移但禁用了允许数据丢失。
当我 运行 应用程序进行这些更改后,新的 table 实际上已创建到数据库中,但应用程序告诉我:
Automatic migration was not applied because it would result in data loss
没有任何其他细节。正如我在其他问题中所读到的那样:
Database-Update -Script
得到 "differences" 但什么也没有发生,只是同样的错误信息。 我真的不想强制更新,除非我确定它会做什么。
如何获取当前迁移的内容? 我试图查看 dbo.__MigrationHistory table 但模型字段包含二进制数据。
更新
我能够使用 this 方法解码模型字段,但 edmx 文件仅包含数据库的整个图表,而不是迁移将发出的实际命令。
此外,即使按照工具本身的建议添加 -Verbose
标志:
PM> Update-Database -Verbose
Using StartUp project 'MyProject'.
Using NuGet project 'MyProject'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
它不显示 SQL 语句...
显示此消息是因为您可能对模型进行了一些更改,导致 DROP 命令(例如删除 属性)。
要查看特定迁移的脚本,即最新迁移与之前迁移之间的更新,您可以使用以下命令:
Update-Database -Script -SourceMigration: <migrationBeforeTheLastOne> -TargetMigration: <lastMigration>
如