我希望使用持续集成将我的SSDT项目部署到UAT和生产环境中,并使用指向azure数据湖的外部表。以下语句需要根据环境进行更改:-
CREATE DATABASE SCOPED CREDENTIAL [ScopeCredential]
WITH IDENTITY = N'KeyDetails' ,
Secret = 'secretsuff';
CREATE EXTERNAL DATA SOURCE [DS1]
WITH (
TYPE = BLOB_STORAGE,
LOCATION = N'https://BlobDataDev.blob.core.windows.net/dir/MyProject/',
CREDENTIAL = [AzureStorageCredential]
);
我知道命令变量不能在这种情况下使用。确保这些在环境之间自动更改并与DACPAC的CI/CD版本部署配合使用的最佳方式是什么。
这需要在创建对象之前进行更改,因为如果凭据错误,create语句将挂起。
感谢
我提出的解决方案是使用sqlpackage.exe命令行上的params从部署中排除这些项目。当然,这些最初需要创建。
由于这些项目保持不变,这种方法似乎运行得相当好。