我已经搞砸了我的迁移,我在初始迁移上使用了IgnoreChanges,但现在我想删除所有的迁移,并从具有所有逻辑的初始迁移开始。

当我删除文件夹中的迁移并尝试添加- migration时,它不会生成一个完整的文件(它是空的-因为我没有做任何更改,但现在删除了,迁移)。

是否有禁用-迁移命令,以便我可以重新运行启用-迁移?


当前回答

你需要:

删除状态:删除项目中的迁移文件夹;和 删除数据库中的__MigrationHistory表(可能在系统表下);然后 在包管理器控制台中执行以下命令: Enable-Migrations -EnableAutomaticMigrations -Force 使用-EnableAutomaticMigrations或不使用-EnableAutomaticMigrations 最后,你可以运行: Add-Migration初始

其他回答

在EntityFramework 6中,请尝试:

Add-Migration Initial

以便更新初始迁移文件。

如何

Update-Database –TargetMigration: $InitialDatabase

在包管理器控制台?它应该将所有更新重置到非常早期的状态。

参考链接:代码优先迁移-迁移到特定版本(包括降级)

这个方法不需要删除__MigrationHistory表,所以你不必在部署时把你的手放在数据库上。

从migrations文件夹中删除现有的迁移。 在包管理控制台运行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()
    {
    }
}

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的

在EF6

删除“migrations”文件夹中的所有文件…但不是'初始创建'或'配置'。 删除数据库。 现在运行Add-Migration Initial。 现在你可以“update-database”,一切都会好起来。