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

时间:2013-10-02 13:55:35

标签: entity-framework migration

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

Update-Database -Script -SourceMigration: $InitialDatabase
Update-Database -Script -SourceMigration:0

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

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

1 个答案:

答案 0 :(得分:48)

尝试:

Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: [MigrationName]

应该包括从初始数据库到目标迁移的脚本。至少应该有“MigrationHistory”表。

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

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

Update-Database -TargetMigration: $InitialDatabase

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

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

Add-Migration -Name: [MigrationName]

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