.NET Core MVC克隆项目本地数据库无法同步最新迁移变更求助
解决Code-First迁移同步后数据库列缺失的问题
嗨,这个问题我之前也碰到过!本质就是你在主电脑上完成了Code-First迁移并同步到了本地数据库,但笔记本拉取代码后,本地数据库还没跟上这些结构变更,导致实体模型和数据库表结构不匹配,才会报“缺少列”的错误。下面给你一步步的解决办法:
第一步:确认本地数据库的迁移状态
打开笔记本上的Visual Studio项目,找到包管理器控制台(Package Manager Console),运行以下命令查看已应用的迁移情况:
Get-Migration
输出结果里,带[Applied]标记的是已经同步到本地数据库的迁移,没有标记的就是你在主电脑上新创建、还未在笔记本执行的迁移。
第二步:将未执行的迁移应用到本地数据库
确认好未同步的迁移后,在包管理器控制台执行命令,让数据库结构跟上实体模型的变化:
Update-Database
如果你的项目有多个环境或自定义连接字符串,也可以指定参数:
# 指定连接字符串名称 Update-Database -ConnectionStringName "YourConnectionStringName" # 或者指定运行环境 Update-Database -Environment "Development"
第三步:验证修复效果
执行完迁移后重启你的.NET Core MVC应用,应该就不会再出现实体缺少列的错误了。如果问题依然存在,可以检查这几点:
- 确认笔记本的数据库连接字符串指向的是本地正确的数据库(别不小心连到主电脑的数据库了)
- 查看项目的
Migrations文件夹,确认新的迁移文件已经成功拉取到本地 - 直接用SQL Server管理工具(比如SSMS)查看对应表的结构,确认新增的列是否已经存在
最后提个小建议:以后每次拉取远程代码后,都先跑一遍Get-Migration检查迁移状态,必要时执行Update-Database,这样就能避免模型和数据库不同步的问题啦。
内容的提问来源于stack exchange,提问作者Zarch
相关产品推荐
相关产品推荐

