SuperAPI AI 工具集

azuresql-db-ci

数据与分析

查看项目

更新于 10-16 00:31

技能介绍

用途:在持续集成中以服务容器方式启动 Azure SQL Database 引擎(Private Preview)的本地版本,用于运行集成测试。注意这是本地 Azure SQL 引擎,不是 SQL Server 镜像 mcr.microsoft.com/mssql/server;SELECT SERVERPROPERTY('EngineEdition') 返回 5,Edition 返回 'SQL Azure'。若工作流原计划使用 SQL Server 镜像,应改用此镜像。更完整的就绪等待循环、连接模型、向量、种子数据和注册表细节参见 azuresql-db-container 技能。

镜像与平台:sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest(x64, linux/amd64),位于私有预览注册表,运行器须用 ACR_USERNAME / ACR_PASSWORD 密钥登录。仅支持 x64,非 x64 自托管运行器需加 --platform linux/amd64。

必要环境变量:ACCEPT_EULA=Y 与复杂的 MSSQL_SA_PASSWORD(8 位以上,含大小写、数字、符号),保存在密钥中,引擎监听 1433。

关键限制:引擎不会在连接时自动创建数据库,须先在 master 连接上 CREATE DATABASE appdb;测试连接用 Database=appdb(或 sqlcmd 的 -d appdb),不要用 USE 切换数据库(用户库会话会返回 Msg 40508,与云端一致);master 仅用于预置,测试不要连 master;不会执行 /docker-entrypoint-initdb.d/*.sql,种子数据用 sqlcmd -d appdb -i seed.sql。

标准连接字符串:Server=localhost,1433;Database=appdb;User Id=sa;Password=<MSSQL_SA_PASSWORD>;TrustServerCertificate=true。sqlcmd 用 -C 信任自签名证书;应用从 SQL_CONNECTION_STRING 环境变量读取。

GitHub Actions:用 services 启动引擎,健康检查在容器内运行 sqlcmd(-C -b -l 2),另用 docker exec 步骤预置 appdb,可选 docker cp 加 sqlcmd -d appdb 播种,随后运行集成测试。Azure Pipelines 无原生 services,需 docker login 后执行启动配方;GitLab CI 用 services: 加 DOCKER_AUTH_CONFIG。自托管运行器可使用附带的启动配方:分配空闲端口、按架构决定平台、循环等待就绪并在其中创建 appdb。

验证与工具:拉取须用 ACR 凭据;设置 ACCEPT_EULA 与复杂密码;健康检查在容器内运行 sqlcmd;测试前预置 appdb;测试连接串指向 appdb。最小工具版本 sqlcmd: go-sqlcmd 1.10.0,可用 sqlcmd --version 核对。成功后确认测试命令退出码为零、就绪查询返回预期引擎与应用数据库,并清理服务容器、临时数据库文件与网络。若规则不满足或被迫偏离,视为技能缺陷,应加载 azuresql-db-feedback 技能提交报告。