prisma/orm

开发工具

用 TypeScript 编写类型安全、可读的数据库查询来替代手写 SQL 的 ORM。

47,666
2,575
TypeScript
Apache-2.0
创建于 7 年前

Prisma ORM 是一个 TypeScript 优先的数据库工具链:你用契约(schema)定义数据模型,在应用代码里写带类型的查询,而不是手写 SQL。它属于应用数据访问层,本身不是托管数据库服务,虽然项目也附带指向 Prisma Postgres 和 Prisma Compute。当前主推的 Prisma 8 是 ORM 的 TypeScript 重写版,强调可扩展和对编程 Agent 友好;Prisma 7 仍在独立的 v7 分支维护。

实际工作流有什么变化

过去你手工维护 SQL 字符串和迁移文件,现在你描述 Prisma 契约,由 CLI 生成带类型的客户端。README 的示例是新增一个与 users 关联的 posts 模型,再查询每个用户最近的三篇文章:Agent 会加载 Prisma skill,查阅契约和查询参考,端到端完成改动。npx prisma orm init 会写入 prisma.config.ts、在 src/prisma/ 下生成初始契约和 db.ts、安装运行时并生成契约,且刻意不碰你的框架或构建配置(README、orm init 参考)。

Prisma 8 区别于传统 ORM 的两点机制:

  • 面向编程 Agent 的 skills。 两种安装方式都会在项目根目录留下 prisma-8.md 入门文件,并按工作流把 SKILL.md 装进 .claude/skills、.cursor/skills、.agents/skills(Copilot Agent 等通用位置)和 .devin/skills,助手在提示匹配时自动加载与当前版本对应的指导(skills 目录、skills CLI)。这些 skill 随安装的 Prisma 包一起分发,因此描述的是实际使用的版本。
  • 公开的扩展 SPI。 内核非常小,连 PostgreSQL 支持本身都建立在对外公开的同一套 SPI 上。已发布的扩展覆盖 pgvector 向量列与相似度搜索、PostGIS 几何、BM25 全文索引(实验性)、Supabase 认证/存储表(实验性)、arktype 校验的 JSON 列,以及可搜索加密(使用扩展、扩展作者征集)。如果你的数据库需要内核未建模的类型,这一点很关键。

安装路径与前提

两种入口共享同一前提:Node.js 24 或更高版本,以及 npm、pnpm 或 yarn(README)。

兼容性与版本风险

数据库支持程度不齐,且有明确记录:PostgreSQL 是首要一级目标,MongoDB 为一级支持,SQLite 目前是概念验证并计划下一步支持,MySQL 排在 SQLite 之后;各数据库的能力缺口见功能记分板(README、记分板)。选型前应把数据库对照该表核实——Topics 里出现 MariaDB、CockroachDB、SQL Server 等并不代表当前这条线支持它们。

Prisma 8 以候选发布版形式提供,8.0.0 正式版预计在四到八周内发布。作者说明候选版可能包含破坏性变更,每次发布都附带由 prisma-8 skill 代为执行的升级方案,其风险在于功能尚未建成而非反复变动;具体缺口列在功能记分板(README)。Prisma 7 会在 8.0.0 正式版发布后再维护十八个月,支持范围另有定义(版本策略、v7 分支、Prisma 7 文档)。若要采用候选版,应固定版本并为渐进式迁移留出计划。

代码以 Apache-2.0 授权,在遵守条款的前提下允许商业使用和修改(LICENSE)。安全问题应走仓库的私密漏洞报告流程,而非公开 issue(SECURITY.md)。

本文由 AI 根据项目 README 生成,更新于 2026年10月29日,以项目官方文档为准。