SuperAPI AI 工具集

azuresql-db-schema-migration

数据与分析

查看项目

更新于 10-16 00:31

技能介绍

用途:在本地 Azure SQL Database 容器上执行架构迁移,使开发与生产环境保持一致。该引擎为 Azure SQL Database(EngineEdition 返回 5,Edition 为 SQL Azure),并非 SQL Server 镜像 mcr.microsoft.com/mssql/server。

主要能力:支持 EF Core、Prisma、Alembic、SqlPackage/DACPAC 等迁移工具;支持原生 VECTOR(n) 列与 VECTOR_DISTANCE,以及 CREATE VECTOR INDEX(DiskANN)。

必要用法:引擎不会在连接时自动建库,须先在 master 连接上创建 appdb,再让迁移工具指向用户库(Database=appdb)。不要用 USE 切换数据库,用户库会话中 USE 返回 Msg 40508。连接字符串统一使用 User Id=/Password=/Database= 与 TrustServerCertificate=true。启动容器需等待就绪并重试建库,示例:docker login sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io;docker run -d --name sqldb ... sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest;随后用 sqlcmd 循环执行 IF DB_ID('appdb') IS NULL CREATE DATABASE appdb;。迁移命令示例:dotnet ef database update;npx prisma migrate deploy;alembic upgrade head;sqlpackage /Action:Publish ...。

限制:镜像仅支持 x64,非 x64 主机需加 --platform linux/amd64;不自动执行 /docker-entrypoint-initdb.d/*.sql,需迁移后显式播种;向量索引需 SET QUOTED_IDENTIFIER ON 且至少 100 行非空向量,存在索引时 TRUNCATE 被拒,DROP 需用 DROP INDEX name ON dbo.table;向量维度不能作为绑定参数;不要在 master 连接上运行迁移。Prisma 需固定 @6,Prisma 7 配置方式不同。更多细节见 references/migration-tools.md。