我正在尝试生成将为我创建数据库的sql脚本。到目前为止,我试过这个:
Update-Database -Script -SourceMigration: $InitialDatabase
Update-Database -Script -SourceMigration:0
但是这两个都给了我从第一次迁移到最后一次迁移的脚本。并且没有数据库的初始状态,其中应该包括数据库本身的创建,以及在我将迁移添加到项目时存在的单个表。
那么,当迁移没有给我完整的sql脚本时,如何重新创建我的模型呢?
答案 0 :(得分:48)
尝试:
Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: [MigrationName]
应该包括从初始数据库到目标迁移的脚本。至少应该有“MigrationHistory”表。
您还可以尝试通过以下方式重新创建迁移:
1)恢复到初始数据库。如果一切顺利,这应该从数据库中删除所有表。
Update-Database -TargetMigration: $InitialDatabase
2)删除Migrations文件夹中的所有迁移文件。您不必删除配置类文件。
3)添加新迁移。但是,这将创建从初始数据库到最新模型的迁移文件。
Add-Migration -Name: [MigrationName]
希望这会有所帮助。我还建议查看this博文。请注意提示#5,即“在删除之前不删除迁移(向下)”。根据我的经验,如果不遵循迁移,这会导致迁移问题。