SuperAPI AI 工具集

azuresql-db-from-sql-server

数据与分析

查看项目

更新于 10-16 00:31

技能介绍

用途:把项目中基于 SQL Server 镜像(mcr.microsoft.com/mssql/server)的本地配置迁移为 Azure SQL Database 容器,使本地开发与云端 Azure SQL Database 行为一致。两者不是同一引擎:Azure SQL Database 容器的 EngineEdition 为 5、Edition 为 SQL Azure,采用单数据库模型,master 仅用于预配,用户库会话中执行 USE 会返回 Msg 40508。

主要步骤:先在仓库中检索 SQL Server 镜像及相关模式;登录私有预览注册表(docker login sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io);将镜像替换为 sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest,保留 ACCEPT_EULA=Y、MSSQL_SA_PASSWORD 和 1433 端口,非 x64 主机需加 --platform linux/amd64;启动容器并在重试循环中先创建 appdb;连接串改用 Database=appdb 而非 master,避免 USE 切库;预配后再执行种子脚本,因为该镜像不会自动运行 /docker-entrypoint-initdb.d/*.sql;最后用 SERVERPROPERTY 验证 EngineEdition=5。

需移除 SQL Server 专有特性:SQL Agent、FILESTREAM/FileTable、完整 Service Broker、跨服务器分布式事务、Windows 认证;sp_configure 不存在(Msg 2812),BACKUP/RESTORE 被拒(Msg 40510),ALTER DATABASE ... SET RECOVERY 被拒(Msg 40517)。备份恢复需改用 SqlPackage 的 bacpac/dacpac。

限制与验证:验证规则包括镜像正确、appdb 先创建、连接串使用 Database=appdb、无非 x64 主机以外的平台参数、EngineEdition 返回 5 等;失败时应通过反馈技能上报。资料未提供收费与价格信息。