使用 Azure DevOps 处理 EF 迁移

问题描述 投票:0回答:0

使用 Visual Studio 时,我只运行

Add-Migration Name
然后
Update-Database
。 现在我正在尝试使用 Azure DevOps 自动化一些流程,我看到了this question并尝试适应但没有成功。

我的 CI 流水线:

trigger:
  - master
  - development

pool:
  vmImage: windows-latest

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: UseDotNet@2
  displayName: 'Install DotNet 6.0.x'
  inputs:
    version: '6.0.x'
    includePreviewVersions: true

- task: NuGetToolInstaller@1
  displayName: 'Install NuGetTool'

- task: DotNetCoreCLI@2
  displayName: 'DotNet restore'
  inputs:
    command: restore
    projects: '**/**/*.csproj'

- task: DotNetCoreCLI@2
  displayName: 'Run XUnit tests'
  inputs:
    command: test
    projects: '**/Workio.Tests/*.csproj'
    arguments: '--configuration $(buildConfiguration)'

- task: DotNetCoreCLI@2
  displayName: 'DotNet publish'
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    zipAfterPublish: True

- task: DotNetCoreCLI@2
  displayName: 'Install EF tools'
  inputs:
    command: custom
    custom: 'tool'
    arguments: 'install --global dotnet-ef'
  
- script: 'dotnet ef migrations script   --idempotent  --output migrations.sql --project Workio/Workio/Workio.csproj'
  displayName: Create EF Scripts
 
- task: CopyFiles@2
  displayName: 'Copy EF Scripts to Staging'
  inputs:
    Contents: |
     **\migrations.sql 
    TargetFolder: '$(Build.ArtifactStagingDirectory)'
    flattenFolders: true

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifacts'

问题是创建的脚本只有 EFMigrations_History 表。 有人可以帮助我理解我做错了什么吗?

更新 在使用脚本命令之前我没有创建我的迁移。

- script: 'dotnet ef migrations add $(MigrationName) --project Workio/Workio/Workio.csproj'
  displayName: 'Add Migrations

我现在的问题是因为我没有在任何地方保存这些迁移,每次发布管道运行时我都会得到重复的表错误。我该如何处理?

更新二: 真的不知道为什么,但我虽然在 git 中存储迁移在团队中工作很糟糕,但是thisthis(如何处理合并迁移)告诉我事实并非如此。所以我只是将迁移保存到 bitbucket 中。

.net entity-framework azure-devops
© www.soinside.com 2019 - 2024. All rights reserved.