SuperAPI AI 工具集

prisma-azure-sql

数据与分析

查看项目

更新于 10-16 00:31

技能介绍

用途:在 JavaScript/TypeScript 项目中用 Prisma ORM 操作 Azure SQL Database,需遵守该连接器的真实限制。

主要能力与限制:datasource provider 为字面量 sqlserver,但限制不同于 SQL Server。连接器不支持 Json 类型、枚举和标量列表,prisma validate 会直接报错;应改用字符串列、查找表加关系、子表来建模。连接串为 JDBC 风格而非 URI,例如 sqlserver://<server>.database.windows.net:1433;database=appdb;user=app;password=<secret>;encrypt=true,URI 形式会报 P1013。

版本与配置:最新版可能是下一主版本的候选版且不含该连接器,应固定到 7,并保持 prisma 与 @prisma/client 版本一致,安装 @prisma/adapter-mssql。Prisma 7 起 url 不再写在 schema 中,需放入 prisma.config.ts,并显式 import 'dotenv/config',否则报 PrismaConfigEnvError。客户端需驱动适配器,其封装 mssql。

迁移:prisma migrate dev 需要影子数据库,云端不会自动创建,报 P3020,需另建数据库并通过 shadowDatabaseUrl 指向;本地容器可自动创建,因此本地成功不代表云端可用。prisma migrate deploy 与 db push 不使用影子库。

键长度风险:未指定原生类型的 String 默认 NVARCHAR(1000),即 2000 字节,超过非聚集索引 1700 字节、聚集索引 900 字节限制,迁移时仅告警,插入长值时才失败。应对键、唯一约束、外键字段显式指定 @db.NVarChar(n)。可用 prisma migrate diff 查看 DDL,并用 sqlcmd 查询 sys.indexes 检查超限索引。

身份验证:适配器支持 Entra ID 相关认证方式,但命令行迁移走配置文件 URL,通常需用户名密码。

限制:资料未提供收费、价格、平台支持范围等信息。