使用 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 中存储迁移在团队中工作很糟糕,但是this和this(如何处理合并迁移)告诉我事实并非如此。所以我只是将迁移保存到 bitbucket 中。