实体框架迁移 - 生成当前数据库模型的sql脚本

oje*_*jek 25 migration entity-framework

我正在尝试生成将为我创建数据库的sql脚本.到目前为止我试过这个:

Update-Database -Script -SourceMigration: $InitialDatabase
Update-Database -Script -SourceMigration:0
Run Code Online (Sandbox Code Playgroud)

但是这两个都给了我从第一次迁移到最后一次迁移的脚本.并且没有数据库的初始状态,其应该包括数据库本身的创建,以及当我将迁移添加到项目时存在的单个表.

那么,当迁移没有给我完整的sql脚本时,如何重新创建我的模型呢?

cub*_*ski 49

尝试:

Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: [MigrationName]
Run Code Online (Sandbox Code Playgroud)

这应该包括从初始数据库到目标迁移的脚本.至少应该有"MigrationHistory"表.

您还可以尝试通过以下方式重新创建迁移:

1)恢复到初始数据库.如果一切顺利,这应该从数据库中删除所有表.

Update-Database -TargetMigration: $InitialDatabase
Run Code Online (Sandbox Code Playgroud)

2)删除Migrations文件夹中的所有迁移文件.您不必删除配置类文件.

3)添加新迁移.但是,这将创建从初始数据库到最新模型的迁移文件.

Add-Migration -Name: [MigrationName]
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助.我也建议看看这篇博文.请注意提示#5,即"在删除之前不删除迁移(向下)".根据我的经验,如果不遵循,这会导致迁移问题.