假设我有一个现有的数据库,我使用EF迁移来获得其初始状态。
Enable-Migrations –EnableAutomaticMigrations
add-migration Initial
如果我继续运行update-database,我会收到一个错误,我的对象已经存在。我告诉的解决方案是删除Up()和Down()方法中的代码。这很好。现在我可以修改我的模型并添加新的迁移,然后相应地更新它们。
但是当我想创建一个新数据库时该怎么办?我继续使用Up / Down方法恢复代码,这对于创建新数据库很有用,但是如果我尝试将它应用到现有数据库,我就会回到已经存在的对象。我猜我需要能够在现有数据库上初始化历史表。
答案 0 :(得分:0)
我找到了一种可能会解决问题的解决方法。
确保删除现有数据库上的_MigrationHistory表。在PMC中运行以下内容
Enable-Migrations –EnableAutomaticMigrations -Force
add-migration Initial
Update-Database -Script
最后一个命令将生成一个新的SQL脚本并在IDE中打开。删除Initial Up()Down()方法中的代码。您可以创建新数据库,然后在该数据库上执行此脚本并继续使用迁移。
希望我能找到更优雅的方式来做到这一点。