在 Azure DevOps 中通过 CI 和 CD 迁移实体框架核心

use*_*747 2 entity-framework-core azure-devops

我创建了一个 Entity Framework Core 项目,它运行良好,我能够通过 Visual Studio 生成迁移。

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

通过添加这个命令

dotnet ef migrations script --project $(Build.SourcesDirectory)\SampleEFCoreApplication\SampleEFCoreApplication.csproj -o $(build.artifactstagingdirectory)\migrations\scripts.sql
Run Code Online (Sandbox Code Playgroud)

这将生成整个 SQL 脚本。但是下一次,如果我必须对我的模型进行任何更改,它会再次重新生成整个 SQL 脚本。但我只希望在我进行任何模型更改时出现更改。我怎样才能做到这一点 ?

这就是我的 CI 在 Azure DevOps 中的样子

在此处输入图片说明

Joe*_*man 9

您可以使用 --idempotent 选项将代码添加到脚本中,以便仅将适当的迁移应用于数据库。这有效地使 sql 脚本相当于update-database在包管理器控制台中运行。