【问题标题】:Entity Framework Core migrations through CI and CD in Azure DevOps通过 Azure DevOps 中的 CI 和 CD 进行 Entity Framework Core 迁移
【发布时间】:2019-09-20 11:42:40
【问题描述】:

我创建了一个 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

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

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

【问题讨论】:

  • 有一个From To选项可以用来生成一个脚本,从一个特定的版本迁移到一个特定的版本。它的工作方式类似于dotnet ef migrations script 20180904195021_InitialCreate 迁移可以通过名称或 ID 来识别,并且像这样提供它意味着它将为 InitialCreate 之后所做的更改生成脚本。我将由您决定如何提供所需的名称,但您可能希望使用 powershell 来执行此操作。

标签: azure-devops entity-framework-core


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-10-27
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    相关资源
    最近更新 更多