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

Azure Pipelines中EF Core迁移仅生成MigrationHistory无表脚本问题

Azure Pipelines中EF Core迁移脚本仅生成MigrationHistory的问题排查与解决

问题描述

在Azure Pipelines中执行EF Core迁移脚本生成任务时,任务执行成功但仅生成了EFMigrationHistory表的创建脚本,未包含业务数据表的迁移内容。任务配置如下:

steps:
- task: DotNetCoreCLI@2
  displayName: 'Create SQL Scripts'
  inputs:
    command: custom
    custom: ef
    arguments: 'migrations script --output $(Build.SourcesDirectory)/SQL/tododbscript.sql --idempotent --project $(Build.SourcesDirectory)/AppService.App/AppService.App.csproj --context NotiDbContext'

生成的脚本内容:

IF OBJECT_ID(N'[dbo].[EFMigrationHistory]') IS NULL
BEGIN
    CREATE TABLE [dbo].[EFMigrationHistory] (
        [MigrationId] nvarchar(150) NOT NULL,
        [ProductVersion] nvarchar(32) NOT NULL,
        CONSTRAINT [PK_EFMigrationHistory] PRIMARY KEY ([MigrationId])
    );
END;
GO

但在本地Visual Studio中执行相同命令可正常生成包含所有数据表的完整迁移脚本。

排查与解决方法

1. 确认构建代理已拉取完整迁移文件

检查代码仓库是否包含项目中Migrations目录下的所有迁移类文件(即日期命名的.cs迁移文件),确保Azure Pipelines的拉取代码步骤已同步完整代码内容。如果迁移文件未提交到仓库,构建代理无法识别需要生成的业务表迁移脚本。

2. 强制指定迁移的起始版本

默认情况下,migrations script命令若未指定起始迁移,可能因构建环境无数据库上下文参考,仅生成历史表脚本。添加--from 0参数强制从初始状态生成到最新迁移的完整脚本:
修改后的任务参数:

arguments: 'migrations script --from 0 --output $(Build.SourcesDirectory)/SQL/tododbscript.sql --idempotent --project $(Build.SourcesDirectory)/AppService.App/AppService.App.csproj --context NotiDbContext'

3. 对齐EF Core工具版本

本地Visual Studio使用的EF Core工具版本可能与Azure Pipelines代理上的版本不一致,导致无法识别迁移。在生成脚本前安装与项目匹配版本的EF工具:

steps:
- task: DotNetCoreCLI@2
  displayName: 'Install EF Core Tools'
  inputs:
    command: 'tool'
    arguments: 'install --global dotnet-ef --version 6.0.25' # 替换为你项目的EF Core版本

4. 确保项目依赖已正确还原

在执行EF脚本生成前,先还原项目依赖,避免因缺失EF相关包导致无法解析迁移:

- task: DotNetCoreCLI@2
  displayName: 'Restore Project Dependencies'
  inputs:
    command: 'restore'
    projects: '$(Build.SourcesDirectory)/AppService.App/AppService.App.csproj'

5. 验证上下文类配置

确认NotiDbContext是项目中创建迁移时使用的上下文类,且上下文的配置(如连接字符串、实体映射)在构建环境中可正常解析,避免因上下文识别错误导致未生成对应迁移脚本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:17:22