我已经打乱了我的迁移,我用IgnoreChanges
初始迁移,但现在我想删除我的所有迁移,并与所有的逻辑的初始迁移启动。
当我删除该文件夹中的迁移和尝试,并Add-Migration
它不会产生一个完整的文件(它是空的-因为我没有做,因为我上次任何变化,但现在删除,迁移)。
有没有禁用的迁移命令,让我可以重新Enable-Migrations
?
我已经打乱了我的迁移,我用IgnoreChanges
初始迁移,但现在我想删除我的所有迁移,并与所有的逻辑的初始迁移启动。
当我删除该文件夹中的迁移和尝试,并Add-Migration
它不会产生一个完整的文件(它是空的-因为我没有做,因为我上次任何变化,但现在删除,迁移)。
有没有禁用的迁移命令,让我可以重新Enable-Migrations
?
你需要 :
__MigrationHistory
表在数据库中(可能是在系统表); 然后 在运行程序包管理器控制台执行以下命令:
Enable-Migrations -EnableAutomaticMigrations -Force
不管有没有用-EnableAutomaticMigrations
最后,你可以运行:
Add-Migration Initial
问题:您已经打乱了你的迁移和你想不删除现有的表重新设置。
问题:您无法重置与现有表迁移数据库为EF想从头开始创建表。
该怎么办:
删除从Migrations_History表中的现有迁移。
删除存储文件夹中的迁移现有的迁移。
运行Add-迁移复位。 这将创建包含创建表的迁移文件夹迁移(但它不会运行它,所以它不会报错了。)
现在,您需要在MigrationHistory创建表的初始行,以便EF具有当前状态的快照。 EF会做这个,如果你申请迁移。 然而,你可以不适用,你刚才提出如表中您的数据库已经存在的迁移。 所以进入移民和注释掉“向上”的方法内的所有代码。
现在运行更新的数据库。 这将应用迁移(而不是实际更改数据库)和创建MigrationHistory快照一行。
现在,您已经重置您的迁移,并可以继续正常迁移。
怎么样
Update-Database –TargetMigration: $InitialDatabase
在包管理器控制台? 应该所有更新重置很早状态。
参考链接: 代码首先迁移-迁移到一个特定的版本(包括降级)
为了解决这个问题,您需要:
删除迁移文件夹中所有*的.cs文件。
删除_MigrationHistory数据库中的表
运行Enable-Migrations -EnableAutomaticMigrations -Force
运行Add-Migration Reset
然后,在public partial class Reset : DbMigration
类,你需要注释的所有现有的和当前的表:
public override void Up()
{
// CreateTable(
// "dbo.<EXISTING TABLE NAME IN DATABASE>
// ...
// }
...
}
如果你错过了这一点都将失败,你必须重新开始!
Update-Database -verbose
这应该是成功的,如果你已经正确以上,现在可以正常进行。
我的问题竟然是我手动删除该文件夹的迁移。 我这样做,因为我想备份的内容,所以我干脆拖着夹出该项目的。 我后来把它放回(制作备份后),然后右键单击它在解决方案资源管理器中,然后从弹出菜单中删除的删除文件夹迁移解决了这一问题。
在6的EntityFramework请尝试:
Add-Migration Initial
为了更新初始迁移文件。
还在考虑这表明,当我们搜索在.NET核心EF,我会在这里发布我的答案(因为它已困扰了我很多)。 请注意,有一些细微之处与EF 6 .NET版本(无初始命令,你将需要删除的“快照”文件)
(在.NET核心2.1测试)
具体操作步骤如下:
_efmigrationhistory
表。 ApplicationDbContextSnapshot.cs
,并将其删除 。 Add-Migration InitialMigration
请注意: 您必须删除所有快照文件 。 我花了无数的时间只是删除数据库...这将产生一个空的迁移,如果你不这样做。
此外,在#3你可以命名你的迁移,但是你想。
这里有一些额外的资源: asp.net CORE迁移产生的空
复位实体框架7迁移
在EF6
Add-Migration Initial
。 在实体框架的核心。
DOTNET EF数据库中删除-f -v
DOTNET EF迁移初始添加
DOTNET EF数据库更新
这种方法不需要的删除__MigrationHistory
表,所以你不必把你的手放在部署数据库上。
Add-Migration ResetMigrations
Up()
方法: /// <summary>
/// Reset existing migrations by cleaning the __MigrationHistory table
/// and creating a new initial migration with the current model snapshot.
/// </summary>
public partial class ResetMigrations : DbMigration
{
public override void Up()
{
Sql("DELETE FROM [dbo].[__MigrationHistory]");
}
public override void Down()
{
}
}
Enable-Migrations -EnableAutomaticMigrations -Force