Prisma Studio
Prisma Studio 是一个独立的视觉数据库编辑器,可让您直接在浏览器中查看和操作数据。Prisma 7 推出了一个全新的独立 Studio,它从头开始构建,旨在适用于任何环境,无论是否使用 Prisma ORM。
与以前的版本不同,新的 Prisma Studio 是 SQL 驱动的,完全不依赖 Prisma schema 文件。相反,它直接通过自省数据库来理解 schema 结构。这意味着您可以将其与任何支持的数据库一起使用,而无需 Prisma schema 或项目。
请注意,Prisma Studio 不是开源的,但您仍然可以在 prisma/studio 仓库中创建问题。所有“旧 Studio”问题都将被关闭,因为不会再对以前的版本进行任何工作。
先决条件
Prisma Studio 是一个独立的工具,只需要一个数据库连接。您有两种选择
选项 1:与任何数据库一起使用(无需 Prisma 项目)
使用 --url 标志直接连接到任何支持的数据库
npx prisma studio --url="postgresql://user:password@localhost:5432/dbname"
这种方法无需任何 Prisma ORM 设置——Studio 将直接自省您的数据库 schema。
选项 2:与 Prisma ORM 项目一起使用
如果您有现有的 Prisma 项目,Studio 可以读取您的数据库连接配置
- 包含数据库连接详细信息的
prisma.config.ts配置文件 - 已配置的数据库连接
新的 Studio 不会读取 prisma/schema.prisma 文件。它直接自省您的数据库以理解 schema 结构。
入门
独立使用(不含 Prisma ORM)
要通过任何数据库启动 Prisma Studio,请提供连接 URL
npx prisma studio --url="postgresql://user:password@localhost:5432/dbname"
与 Prisma ORM 项目一起使用
如果您有 Prisma 项目,请在项目目录中运行以下命令
npx prisma studio --config ./prisma.config.ts
这两个命令都启动一个本地 Web 服务器(默认端口 5555)并在您的浏览器中打开 Prisma Studio。Studio 直接连接到您的数据库并实时自省 schema,为您的数据提供可视化界面——无需 Prisma schema 文件。
核心功能
Prisma Studio 为处理数据库提供了几个关键功能
浏览您的数据
Studio 在侧边栏中显示数据库中的所有表。选择任何表以表格格式查看其数据。您可以在单独的选项卡中打开多个表,以同时处理相关数据。
查看和编辑记录
您可以通过两种方式编辑数据
- 内联编辑:双击任何单元格以直接在表格中编辑其值
- 侧面板编辑:点击记录旁边的编辑图标以打开包含所有字段的详细视图
更改会累积,必须使用保存按钮显式保存。这使您可以在将更改提交到数据库之前进行多次编辑。
添加新记录
通过点击“添加记录”按钮创建新记录。Studio 根据每个字段的数据类型提供适当的输入控件
- 字符串的文本字段
- 整数和小数的数字输入
- 日期时间字段的日期选择器
- 枚举和布尔值的下拉列表
- 外键的关系选择器
删除记录
使用复选框选择一个或多个记录,然后点击删除按钮。删除需要确认并立即应用(不能与其他更改批量处理)。
过滤和搜索
使用“过滤器”菜单来缩小您的数据范围
- 使用比较运算符(等于、大于、小于等)添加条件
- 使用 AND 逻辑组合多个过滤器
- 清除单个过滤器或一次性清除所有过滤器
控制可见性
自定义您的视图
- 字段菜单:显示或隐藏特定列
- 显示菜单:使用“Take”(限制)和“Skip”(偏移量)选项控制分页
排序数据
点击任何列标题以按该字段排序。再次点击可在升序和降序之间切换。
键盘快捷键
Studio 支持常用操作的键盘快捷键。按 Cmd+/ (macOS) 或 Ctrl+/ (Windows) 可查看所有可用快捷键。
理解数据类型
Studio 会显示数据库中不同字段类型的视觉指示器
- 文本字段:字符串值
- 数字字段:整数和小数
- 日期/时间字段:时间戳和日期
- 布尔字段:真/假值
- 枚举字段:预定义选项列表
- 关系字段:引用其他表中的记录(外键)
- JSON 字段:结构化 JSON 数据
这些视觉提示有助于您快速理解数据结构,因为 Studio 直接从数据库中自省数据。
Prisma Studio 支持的数据库
Prisma Studio 目前支持以下数据库:PostgreSQL、MySQL 和 SQLite。
Prisma Studio 的 SQLite 要求
- 目前,SQLite 的数据库 URL 中的文件路径必须包含
file:协议 - Node.js 22.5+:可直接使用内置的
node:sqlite模块- 可能需要
NODE_OPTIONS=--experimental-sqlite环境变量
- 可能需要
- Node.js 20:需要安装
better-sqlite3作为依赖项- 如果使用 pnpm 10+ 和
pnpx,您将需要--allow-build=better-sqlite3标志
- 如果使用 pnpm 10+ 和
- Deno >= 2.2:通过 内置 SQLite 模块 支持
- Bun:Prisma Studio 对 SQLite 的支持即将推出,目前尚未可用
npx 和 better-sqlite3如果您的运行时中没有 node:sqlite 可用,或者不想将 better-sqlite3 作为硬依赖项安装(它会增加约 10MB),您可以使用 npx 临时安装所需的包
npx -p better-sqlite3 -p prisma prisma studio --url file:./my_file.db
此命令
- 临时安装
better-sqlite3,而无需将其添加到您的项目依赖项中 - 使用指定的 SQLite 数据库文件运行 Prisma Studio
- 避免了项目中
better-sqlite3的 10MB 开销
尚未支持的数据库
目前不支持 CockroachDB 和 MongoDB,但可能会在未来的版本中添加。如果您正在使用这些数据库
- CockroachDB:探索 CockroachDB 建议的选项
- MongoDB:使用 MongoDB Atlas、MongoDB Compass 或 MongoDB shell
故障排除
PostgreSQL:“unrecognized configuration parameter 'schema'”错误
连接到 PostgreSQL 数据库时,如果连接字符串包含 schema 查询参数,您可能会遇到此错误
unrecognized configuration parameter "schema"
这是因为新的 Studio 是独立的,它将您的连接 URL 直接传递给 PostgreSQL 驱动程序,而不进行任何处理。您提供的 URL——无论是通过 prisma.config.ts 还是 --url 标志——必须是有效的 PostgreSQL 连接字符串,并且只能使用 标准 PostgreSQL 连接参数。
schema 参数是 Prisma ORM 的一个自定义参数,在 v6 及更早版本中有效,但 PostgreSQL 本身不识别它。
要解决此问题,请改用标准 search_path 参数
# ❌ This will cause an error
postgresql://user:password@host:port/database?schema=my_schema
# ✅ Use this instead
postgresql://user:password@host:port/database?options=-c%20search_path%3Dmy_schema
另外,如果您使用的是默认的 public schema,则可以完全删除 schema 参数,因为 PostgreSQL 会自动默认使用它。
有关更多详细信息,请参阅相关的 GitHub 问题。
终端:脚本运行失败 / Prisma Client 请求错误
缓存问题可能导致 Prisma Studio 使用旧版本的查询引擎。您可能会看到以下错误
Error in request: PrismaClientKnownRequestError: Failed to validate the query Error occurred during query validation & transformation
要解决此问题,请删除以下文件夹
- macOS 和 Linux 上的
~/.cache/prisma - Windows 上的
%AppData%/Prisma/Studio