You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio发布时EF Migrations未执行问题求助

EF Core迁移在非Azure服务器FTP发布时未执行的排查方向
  • 验证发布用连接字符串的权限

    • 确认连接字符串对应的数据库账号拥有创建表、修改Schema的完整权限,尤其是能创建__EFMigrationsHistory表并写入记录的权限。权限不足常导致脚本静默失败且无报错提示。
    • 用该账号直接登录数据库客户端,手动执行已生成的迁移脚本,排查脚本本身或权限问题。
  • 检查迁移执行的网络与上下文

    • Visual Studio FTP发布时,EF迁移是在本地执行dotnet ef database update命令连接远程数据库,而非在服务器端运行。需确保本地机器能访问远程数据库的3306端口,无防火墙、安全组拦截。
    • 在本地CMD手动执行dotnet ef database update --connection "你的远程数据库连接字符串",验证本地到远程数据库的迁移执行通道是否正常。
  • 核对发布配置的迁移目标

    • 确认「Entity Framework Migrations」选项中指定的DbContext类正确,多DbContext项目易出现选错目标的情况。
    • 若迁移代码与Web项目分离,需确认已选中包含DbContext和迁移文件的项目,避免因目标项目错误导致迁移不生效。
  • 查看服务器端应用日志

    • 部分场景下迁移会在应用启动时触发,可查看服务器上Blazor应用的日志文件,排查数据库连接或迁移相关错误。
    • 可在Program.cs中添加代码强制启动时执行迁移并记录日志:
      using (var scope = app.Services.CreateScope())
      {
          var dbContext = scope.ServiceProvider.GetRequiredService<YourDbContext>();
          dbContext.Database.Migrate();
      }
      
  • 检查版本兼容性

    • 确认EF Core Provider版本(如Pomelo.EntityFrameworkCore.MySql)与MariaDB 11.1.2、.NET 8兼容,.NET 8对应的Pomelo版本需为8.0.x及以上,版本不匹配可能导致脚本无法正常执行。

内容的提问来源于stack exchange,提问作者Claire_Monkey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 16:57:02