Azure devops 通过Azure DevOps中的CI和CD进行实体框架核心迁移

Azure devops 通过Azure DevOps中的CI和CD进行实体框架核心迁移,azure-devops,entity-framework-core,Azure Devops,Entity Framework Core,我已经创建了一个EntityFramework核心项目,它运行良好,我能够通过VisualStudio生成迁移 但我想通过Azure Devops CI生成SQL脚本,并通过CD进行部署。我做不到 通过添加此命令 dotnet ef migrations script --project $(Build.SourcesDirectory)\SampleEFCoreApplication\SampleEFCoreApplication.csproj -o $(build.artifactstagi

我已经创建了一个EntityFramework核心项目,它运行良好,我能够通过VisualStudio生成迁移

但我想通过Azure Devops CI生成SQL脚本,并通过CD进行部署。我做不到

通过添加此命令

dotnet ef migrations script --project $(Build.SourcesDirectory)\SampleEFCoreApplication\SampleEFCoreApplication.csproj -o $(build.artifactstagingdirectory)\migrations\scripts.sql
这将生成整个SQL脚本。但下一次,如果必须对模型进行任何更改,它将再次重新生成整个SQL脚本。但我只希望在进行任何模型更改时显示更改。我该怎么做

这就是我的CI在Azure DevOps中的外观


您可以使用--idempotent选项,该选项将向脚本中添加代码,以便只对数据库应用适当的迁移。这有效地使sql脚本相当于在package manager控制台中运行
update database

有一个From-To选项,可用于生成从特定版本迁移到特定版本的脚本。它的工作原理类似于dotnet ef migrations script 20180904195021\u InitialCreate迁移可以通过名称或ID进行标识,并以这种方式提供,这意味着它将为InitialCreate之后所做的更改生成脚本。我将让您决定如何提供所需的名称,但您可能希望使用powershell实现这一点。