prisma db execute 是 Prisma CLI 的一个数据库命令,用于对数据库执行原生命令(SQL)。
用途
该命令连接到配置好的数据源,并执行通过文件或标准输入提供的脚本,适合运行原生 SQL、执行维护任务,或应用来自 migrate diff 的差异脚本。
命令形式
prisma db execute [options]
主要能力
- 使用配置的数据源连接到数据库。
- 执行通过文件(--file)或标准输入(--stdin)提供的脚本。
- 可用于运行原生 SQL、维护任务,或应用 migrate diff 产生的差异脚本。
- 不支持 MongoDB。
选项
- --file:包含待执行脚本的文件的路径。
- --stdin:使用终端标准输入作为脚本。
- --url:覆盖 Prisma 配置文件中的数据源 URL。
- --config:Prisma 配置文件的自定义路径。
使用方式与示例
从文件执行: prisma db execute --file ./script.sql
从标准输入执行: echo "TRUNCATE TABLE User;" | prisma db execute --stdin
执行 migrate diff 输出:
将 migrate diff 的输出直接管道到数据库:
prisma migrate diff
--from-empty
--to-schema-datamodel prisma/schema.prisma
--script
| prisma db execute --stdin
配置
使用 prisma.config.ts 中的数据源: export default defineConfig({ datasource: { url: env('DATABASE_URL'), }, })
适用场景
- 手动迁移:应用原生 SQL 变更。
- 数据维护:截断表、清理数据。
- 模式同步:应用 migrate diff 脚本。
- 调试:运行测试查询(通常不用于获取数据)。
限制
- 不返回数据:该命令报告成功或失败,而不是查询结果(行)。要查看数据,请使用 Prisma Client 或 prisma studio。
- 仅限 SQL:主要用于 SQL 数据库。
- 不支持 MongoDB。