Prisma Database Setup 是什么
Prisma Database Setup 是 Prisma 官方的数据库接入指南 Skill,覆盖 PostgreSQL、MySQL、SQLite、MongoDB、SQL Server、CockroachDB 与 Prisma Postgres。它不仅生成连接字符串,还根据 Prisma 版本、数据库提供商和运行环境选择 schema、prisma.config.ts、驱动适配器与客户端初始化方式。
适用场景与选择边界
适合新项目接入数据库、从一种提供商迁移到另一种、排查连接问题或升级到 Prisma 7 的驱动适配器方案。它不负责所有 CRUD 查询细节,那属于 Prisma Client API;也不负责完整迁移命令参考,后续应使用 Prisma CLI。
核心能力与工作机制
Skill 对每个提供商使用独立参考,并给出 provider 字符串、JavaScript 驱动和 adapter 对应关系。SQL 数据库通常在 Prisma 7 使用 prisma.config.ts 管理数据源 URL,并显式输出 prisma-client;MongoDB 则明确保留 Prisma 6.x 与传统 schema 内 URL 工作流。
实际工作流
先识别数据库类型、Prisma 主版本、Node 与 TypeScript 版本、部署环境和现有 schema。读取对应提供商参考,安装 CLI、Client、驱动和 adapter,配置 schema 与环境变量,执行 prisma generate,再用最小连接或查询验证。每次 schema 变化后重新生成 Client。
输入、输出与交付物
输入包括数据库提供商、连接信息、项目运行时、Prisma 版本以及是否面向 Node、边缘或 Serverless。输出通常是 prisma/schema.prisma、prisma.config.ts、环境变量模板、依赖清单和 PrismaClient 初始化代码;真实密钥只进入安全环境,不写入示例或仓库。
依赖、账号与权限
官方要求 Node.js 20.19.0 以上和 TypeScript 5.4.0 以上。不同数据库需要不同驱动与适配器,例如 PostgreSQL 用 pg 与 adapter-pg,MySQL 用 mariadb,SQLite 可用 better-sqlite3 或 libSQL,SQL Server 使用 mssql 适配器。
限制与安全风险
数据库 URL 泄露会直接暴露数据;db push 或迁移命令也可能改变生产结构。MongoDB 与 SQL 数据库的版本和配置不能混用,边缘运行时也不能默认采用 Node 驱动。生成代码之前应先确认版本矩阵,连接验证只使用最小权限账号。
适合谁使用
适合 Node.js 与 TypeScript 开发者、数据库接入负责人和正在升级 Prisma 的团队。初学者可按单一提供商指南完成最小连接;多数据库或迁移项目应另外设计数据迁移与回退。
上手与验收建议
先记录当前 Prisma、Node、TypeScript 和数据库版本,备份现有 schema 与配置。选择唯一提供商路线后,在本地或隔离环境完成 generate 和简单读写测试;验收时核对 adapter、连接池、环境变量加载和部署运行时一致,再进入迁移或业务查询。
来源、版本与许可
依据 prisma/skills 固定提交中的完整 Prisma Database Setup、skills.sh 详情与 MIT 许可证整理。
常见问题
1. 支持哪些数据库提供商?
明确覆盖 PostgreSQL、MySQL 或 MariaDB、SQLite、MongoDB、SQL Server、CockroachDB 和 Prisma Postgres。每种提供商有独立配置指南,不能只替换 provider 字符串就假设全部兼容。
2. Prisma 7 对配置方式有什么变化?
SQL 提供商通常把数据源 URL 放进 prisma.config.ts,并通过数据库专用 driver adapter 创建 PrismaClient;prisma-client 生成器还需要显式 output 路径。
3. MongoDB 可以直接按 Prisma 7 SQL 指南配置吗?
不可以。官方 Skill 明确要求 MongoDB 项目保留 Prisma 6.x,继续在 schema 中使用 env DATABASE_URL 和传统设置,不应用 SQL driver-adapter 规则。
4. PostgreSQL 应使用哪个适配器?
普通 PostgreSQL、CockroachDB 和 Node 环境下的 Prisma Postgres 通常使用 @prisma/adapter-pg 配合 pg;边缘或 Serverless 的 Prisma Postgres 则有单独的 ppg 适配器与驱动。
5. 为什么每次改 schema 后都要 generate?
Prisma Client 是根据 schema 生成的类型安全客户端,模型或字段变化后旧代码不会自动更新。重新运行 prisma generate 才能让类型、查询 API 和实际数据模型保持一致。
6. 连接字符串应该放在哪里?
应放在环境变量或受控密钥管理中,并由 prisma.config.ts 或相应版本配置读取。不要把用户名、密码和生产主机提交到 schema、示例代码或公开日志。
7. 最低运行时版本是什么?
来源列出 Node.js 20.19.0 以上和 TypeScript 5.4.0 以上。实际项目还应核对所选驱动、框架和部署平台支持,不能只满足 Prisma 的最低值。
8. 配置完成后如何验收?
先运行 generate,再用最小权限账号做连接与简单读写测试,核对 adapter、连接池和运行时。生产切换前还要单独验证迁移、备份、回退和监控。