我已经搞砸了我的迁移,我在初始迁移上使用了IgnoreChanges,但现在我想删除所有的迁移,并从具有所有逻辑的初始迁移开始。
当我删除文件夹中的迁移并尝试添加- migration时,它不会生成一个完整的文件(它是空的-因为我没有做任何更改,但现在删除了,迁移)。
是否有禁用-迁移命令,以便我可以重新运行启用-迁移?
我已经搞砸了我的迁移,我在初始迁移上使用了IgnoreChanges,但现在我想删除所有的迁移,并从具有所有逻辑的初始迁移开始。
当我删除文件夹中的迁移并尝试添加- migration时,它不会生成一个完整的文件(它是空的-因为我没有做任何更改,但现在删除了,迁移)。
是否有禁用-迁移命令,以便我可以重新运行启用-迁移?
当前回答
UPDATE 2020 =>重置实体-框架迁移
Add-Migration Initial -Context ApplicationDbContext
ApplicationDbContext =>您的上下文。
但是如果你只需要更新一个存在的标识模式,试试它: https://stackoverflow.com/a/59966100/4654957
其他回答
在EF6
删除“migrations”文件夹中的所有文件…但不是'初始创建'或'配置'。 删除数据库。 现在运行Add-Migration Initial。 现在你可以“update-database”,一切都会好起来。
要解决这个问题,你需要:
删除Migrations文件夹中的所有*.cs文件。 删除数据库中的_MigrationHistory表 执行Enable-Migrations -EnableAutomaticMigrations -Force命令 执行Add-Migration Reset命令
然后,在公共部分类Reset: DbMigration类中,你需要注释所有现有的和当前的table:
public override void Up()
{
// CreateTable(
// "dbo.<EXISTING TABLE NAME IN DATABASE>
// ...
// }
...
}
如果你错过了这一点,一切都将失败,你必须重新开始!
现在运行Update-Database -verbose
如果您正确地完成了上述操作,那么这应该是成功的,现在您可以正常进行了。
VSC(Visual Studio Code) - .Net核心
1.删除状态:删除项目中的迁移文件夹;
2.删除数据库中__MigrationHistory的记录;
3.Dotnet ef数据库drop -v then 您确定要删除服务器上的数据库'<your-database' ?(y / N) 写“N”
4.. dotnet ef迁移添加Initial,然后将20211014110429_initial类的代码写入__MigrationHistory的
我的问题是手动删除了Migrations文件夹。我这样做是因为我想备份内容,所以我只是将文件夹拖出项目。后来我修复了这个问题,把它放回去(在做了备份副本之后),然后在解决方案资源管理器中右键单击它并从弹出菜单中选择删除,从而删除了Migrations文件夹。
UPDATE 2020 =>重置实体-框架迁移
Add-Migration Initial -Context ApplicationDbContext
ApplicationDbContext =>您的上下文。
但是如果你只需要更新一个存在的标识模式,试试它: https://stackoverflow.com/a/59966100/4654957