您的位置:首页 > 数据库 > SQL

【Azure DevOps系列】Azure DevOps EFCore命令式脚本部署到SQL数据库

2020-12-09 21:22 676 查看

构建迁移脚本

为了构建迁移脚本,我们将需要使用

EF Tools for Command Line Interface
。这些工具在
Microsoft.EntityFrameworkCore.Tools
提供。

  • 迁移脚本

现在我们将通过

dotnet ef migrations script –p <path to your csproj with migrations> -o $(Build.ArtifactStagingDirectory)\migrations\scripts.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'

部署脚本

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

Sqlserver部署任务如下所示:

该任务主要是使用生成的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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: