Entity framework 获取实体框架6 C中特定迁移的SQL文件#
在EntityFramework6中,我需要获取特定迁移文件的SQL脚本,并且我已经更新了数据库。我发现在Entity framework 获取实体框架6 C中特定迁移的SQL文件#,entity-framework,entity-framework-6,ef-code-first,Entity Framework,Entity Framework 6,Ef Code First,在EntityFramework6中,我需要获取特定迁移文件的SQL脚本,并且我已经更新了数据库。我发现在updatedatabase命令中可以添加脚本参数以将迁移导出到SQL,但我已经更新了数据库。我在EntityFrameworkCore中找到了一个名为Script Migration的命令,该命令以脚本名为参数。实体框架中是否有类似的命令 我还尝试了建议“”,但得到了一个空的SQL文件。是的,您可以按如下方式生成迁移SQL: Update-Database -Script -SourceM
updatedatabase
命令中可以添加脚本参数以将迁移导出到SQL,但我已经更新了数据库。我在EntityFrameworkCore中找到了一个名为Script Migration
的命令,该命令以脚本名为参数。实体框架中是否有类似的命令
我还尝试了建议“”,但得到了一个空的SQL文件。是的,您可以按如下方式生成迁移SQL:
Update-Database -Script -SourceMigration: <pointFromWichYouWantToStartWithGeneration> -TargetMigration: <pointWhereToEndWithGeneration>
它将生成一个SQL脚本文件,而不是将更改应用于数据库。因此,即使迁移已应用于数据库,也可以生成SQL脚本
在这里你可以找到更多关于它的信息-
运行updatedatabase
命令,但这次指定–Script
标志,以便将更改写入脚本而不是应用。我们还将指定一个源和目标迁移来生成脚本
如果要为迁移N生成-Script,请指定-SourceMigration N-1(以前的迁移)和-TargetMigration N如果您现在在.net core中,请使用
Script-Migration -From <PreviousMigration> -To <LastMigration>
您可以从PackageManager控制台运行以下命令。它将生成一个临时文件,并在VS:
Script-Migration
我试过上面的方法,但不起作用。。我收到一条消息,“目标数据库已经是版本了”&空的sql文件,我试过了,效果和预期的一样。我使用EF6.2。您是否设置了开始和结束迁移?如果只使用
updatedatabase-Script
,它将不起作用,因为EF不知道从何处开始生成。当我删除targetmigration部分并仅保留为源迁移时,它对我起作用,在这种情况下,我得到了SQL文件。感谢与@MohamedAbdeen相同的问题。不过,使用完整的数据库脚本生成和提取所需的部分对我来说很有效。你是一个救生员!我搜索了一个多小时,虽然我的问题与原来的问题不太接近,但我得到了我想要的!
Script-Migration -From <PreviousMigration>
Script-Migration -From add-parent-id-to-contract
Script-Migration