在我的 YAML 管道中,我有一个部署作业:
部署模板是一个简单的 DbUp 任务:
- stage: deployment_to_development
jobs:
- deployment: deployment_to_development
displayName: Deploy to Development
environment: Development
variables:
- template: migrate-vars.yml
strategy:
runOnce:
deploy:
steps:
- template: migrate-data.yml
部署模板是一个简单的 DbUp 任务:
steps:
- task: UpdateDatabaseWithDbUp@2
displayName: Migrate data
inputs:
ConnectionString: 'Data Source=$(DatabaseServer);Initial Catalog=$(DatabaseName);Integrated Security=SSPI'
ScriptPath: '$(Pipeline.Workspace)\data-migrations'
JournalSchemaName: dbo
JournalTableName: _SchemaVersions
LogScriptOutput: true
IncludeSubfolders: true
Order: FolderStructure
TransactionStrategy: SingleTransaction
变量模板定义了服务器和数据库名称:
variables:
DatabaseServer: 'server'
DatabaseName: 'dbName'
Instances: '_1,_2'
这对于单个数据库来说都很好用。然而,我希望能够针对Instances变量中定义的每个实例重复执行此任务,即对于名为dbName_1、dbName_2的数据库。这看似简单的任务却证明很困难。
我尝试将实例作为参数数组传递,并使用迭代进行操作。
parameters:
param: []
steps:
- ${{each p in parameters.param}}:
但是在任务中没有评估'p'变量。 已经有许多徒劳的尝试了。我一定是漏掉了非常明显的东西。是什么呢?