用途
该技能用于配置 Prisma 与 Prisma Postgres(托管版)的集成。Prisma Postgres 是一种无服务器、托管的 PostgreSQL 数据库,针对 Prisma 进行了优化。
通过 CLI 配置
可以直接通过 CLI 创建一个 Prisma Postgres 实例:
prisma init --db
该操作会执行以下步骤:
- 登录 Prisma Data Platform。
- 创建一个新项目与数据库实例。
- 更新 .env 中的连接字符串。
连接字符串
连接字符串以 prisma+postgres:// 开头:
DATABASE_URL="prisma+postgres://api_key@host.prisma-data.net/env_id"
主要配置
1. Schema 配置
在 prisma/schema.prisma 中:
datasource db {
provider = "postgresql" // Use postgresql provider
}
generator client {
provider = "prisma-client"
output = "../generated"
}
2. Config 配置
在 prisma.config.ts 中:
import { defineConfig, env } from 'prisma/config'
export default defineConfig({
schema: 'prisma/schema.prisma',
datasource: {
url: env('DATABASE_URL'),
},
})
驱动适配器(需要 Prisma ORM 7)
Prisma ORM 7 默认使用查询编译器,因此必须使用驱动适配器。对于 Prisma Postgres,应使用 Prisma Postgres 无服务器驱动适配器。
安装适配器与驱动:
npm install @prisma/adapter-ppg @prisma/ppg
为适配器使用直接 TCP 连接字符串(从 Prisma Console 获取),并实例化 Prisma Client:
import 'dotenv/config'
import { PrismaClient } from '../generated/client'
import { PrismaPostgresAdapter } from '@prisma/adapter-ppg'
const prisma = new PrismaClient({
adapter: new PrismaPostgresAdapter({
connectionString: process.env.PRISMA_DIRECT_TCP_URL,
}),
})
功能
- Serverless:可缩放至零。
- Caching:集成的查询缓存(Accelerate)。
- Real-time:数据库事件(Pulse)。
与 Prisma Client 配合使用
由于 Prisma ORM 7 需要驱动适配器,因此在实例化 Prisma Client 时应使用上文所示的 Prisma Postgres 适配器。
限制
资料未提供价格、免费额度或具体计费方式,也未提供除上述步骤外的其他配置选项或平台支持范围。