用途:Prisma 是面向 Node.js 与 TypeScript 的 ORM,用于声明式数据库建模、自动迁移和端到端类型安全查询,适合 Next.js 与 Node.js 后端,支持 PostgreSQL、MySQL、SQLite、MongoDB。
主要能力:用 schema.prisma 定义数据源、生成器、模型、索引与关系约束;Prisma Client 提供类型安全的 CRUD 与嵌套关系读写,可在单次操作中创建关联数据并 include 返回;支持关系过滤、分页与 select 只取必要列;prisma.$transaction 提供带 ACID 保证的交互式事务与回滚;Prisma Accelerate 与 Pulse 提供边缘缓存、连接池和数据库变更事件订阅。
使用方式:在 schema.prisma 中配置 datasource 与 generator,定义 model 后运行 npx prisma generate 生成客户端;修改 schema 后需重新生成,否则类型过期。生产部署使用 prisma migrate deploy,开发用 prisma migrate 保留迁移历史。
限制与注意:开发环境应全局复用单个 PrismaClient 实例,避免连接池耗尽;不要在 serverless 请求处理函数内新建实例;生产不要用 prisma db push;避免 $queryRawUnsafe 拼接用户输入,改用参数化 $queryRaw。常见错误包括无法连接数据库、P2002 唯一约束冲突等,需检查连接串或捕获对应错误码。官方文档为参考资料。