【发布时间】:2021-09-27 01:13:00
【问题描述】:
我已将所有 SQL 文件签入 Azure devops 上的存储库。 我有命名约定,可以让我知道其他 .sql 文件使用了哪些 .sql 文件(例如,文件创建了一个存储过程使用的视图)。 我想强制使用 repo 来跟踪代码更改,并且不希望使用 dacpac 文件。我希望每个函数/视图/存储过程都有自己的文件。
我的问题是,我将如何从 azure 管道中针对数据库执行与 '..\Functions\BASE_*.sql' 匹配的所有 .sql 文件?我尝试了以下方法,但不支持匹配多个文件。有没有更好的选择呢?我需要编写一个循环脚本并自己做吗?
# pipeline
trigger:
- master
pool:
vmImage: 'windows-latest'
steps:
- task: SqlDacpacDeploymentOnMachineGroup@0
inputs:
TaskType: 'sqlQuery'
SqlFile: '$(System.DefaultWorkingDirectory)\Functions\BASE_*.sql'
ServerName: '$(SQL_ServerName).database.windows.net'
DatabaseName: '$(SQL_DatabaseName)'
AuthScheme: 'sqlServerAuthentication'
SqlUsername: '$(SQL_UserName)'
SqlPassword: '$(SQL_Password)'
我得到的错误是:
Starting: SqlDacpacDeploymentOnMachineGroup
==============================================================================
Task : SQL Server database deploy
Description : Deploy a SQL Server database using DACPAC or SQL scripts
Version : 0.3.23
Author : Microsoft Corporation
Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/sql-dacpac-deployment-on-machine-group
==============================================================================
##[error]Found more than one file to deploy with search pattern d:\a\1\s\Functions\BASE_*.sql. There can be only one.
Finishing: SqlDacpacDeploymentOnMachineGroup
【问题讨论】:
标签: azure-devops azure-sql-database sql-function