EF Core 3.1删除所有迁移与数据库后如何重建新库全量表结构
EF Core 迁移状态重置操作步骤
出现空迁移、删除迁移提示文件缺失的核心原因是本地残留了旧迁移的快照与元数据标记,EF Core 判定当前模型状态已和迁移记录匹配,才不会生成完整建表逻辑,按以下步骤操作即可重置到初始状态,按当前DbSet定义生成全量表结构:
- 第一步:清理本地所有迁移相关文件
直接删除项目中整个Migrations文件夹,包括你之前生成的空迁移文件、模型快照文件全部清除;同时删除项目obj目录下的编译缓存文件,避免旧元数据干扰。 - 第二步:清理数据库端迁移历史标记
确认你已经删除SQL Server中对应的目标数据库即可;如果需要保留现有库不删除,直接执行SQL语句删掉库中的__EFMigrationsHistory系统表,这张表是EF Core存储迁移应用记录的专用表。 - 第三步:生成全新初始迁移
打开包管理器控制台执行命令:Add-Migration InitialCreate
如果使用dotnet ef命令行,在项目根目录执行:dotnet ef migrations add InitialCreate
执行完成后打开新生成的迁移文件,可确认文件中已包含所有实体对应的数据表、约束、索引的创建逻辑,不会再是空内容。 - 第四步:同步生成数据库结构
包管理器控制台执行命令:Update-Database
命令行执行:dotnet ef database update
执行完成后EF Core会自动在目标SQL Server实例创建数据库,并按模型定义生成全部数据表,应用即可正常连接运行。
操作前请先核对DbContext配置的数据库连接字符串,确认指向正确的目标环境,避免连错生产实例造成数据风险。
内容的提问来源于stack exchange,提问作者Rafael Leonardi
相关产品推荐
相关产品推荐

