zoukankan      html  css  js  c++  java
  • 【Azure DevOps系列】Azure DevOps EFCore命令式脚本部署到SQL数据库

    构建迁移脚本

    为了构建迁移脚本,我们将需要使用EF Tools for Command Line Interface。这些工具在Microsoft.EntityFrameworkCore.Tools提供。

    • 迁移脚本

    现在我们将通过 dotnet ef migrations script –p <path to your csproj with migrations> -o $(Build.ArtifactStagingDirectory)migrationsscripts.sql –i来迁移我们的脚本,在如下代码片段中我将脚本进行迁移出来并且输出到指定的路径 -o $(Build.ArtifactStagingDirectory)/migrations/scripts.sql中, -i代表生成可用于任何迁移的数据库的脚本。

     - task: CmdLine@2
       displayName: 'build efcore migrations'
       inputs:
         script: |
            dotnet ef migrations script --project host/EasyAbp.PrivateMessaging.Web.Unified/EasyAbp.PrivateMessaging.Web.Unified.csproj -o $(Build.ArtifactStagingDirectory)/migrations/scripts.sql -i
    
    
    选项 Short 描述
    --output <FILE> -o 要写入脚本的文件
    --idempotent -i 生成可用于任何迁移的数据库的脚本。
    • 发布脚本

    添加一个发布任务将脚本进行发布,发布到指定的路径$(Build.ArtifactStagingDirectory)/migrations/scripts.sql

    - task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)/migrations/scripts.sql'
        ArtifactName: 'drop'
        publishLocation: 'Container'
    

    部署脚本

    下面是我们的部署管道,本章还是主要介绍数据库脚本部署。

    file

    Sqlserver部署任务如下所示:

    file

    该任务主要是使用生成的sql脚本将其执行并恢复添加到我们的数据库服务器中,该任务脚本如下所示:

    steps:
    - task: SqlDacpacDeploymentOnMachineGroup@0
      displayName: 'Deploy using : sqlQuery'
      inputs:
        TaskType: sqlQuery
        SqlFile: '$(System.DefaultWorkingDirectory)/**/scripts.sql'
        ServerName: ''
        DatabaseName: 'PrivateMessaging_Unified'
        AuthScheme: sqlServerAuthentication
        SqlUsername: ''
        SqlPassword: ''
      enabled: false
    
    

    Reference

    https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/cli/dotnet

  • 相关阅读:
    【转】数学题目大集合
    hdu3534,个人认为很经典的树形dp
    GYM
    HDU
    POJ
    POJ
    POJ
    set的经典应用
    天梯赛训练1 7-9 集合相似度
    天梯赛训练1 7-8 查验身份证
  • 原文地址:https://www.cnblogs.com/yyfh/p/14111044.html
Copyright © 2011-2022 走看看