SuperAPI AI 工具集

prisma-database-setup-prisma-postgres

编程与开发

查看项目

更新于 10-16 04:07

技能介绍

用途

该技能用于配置 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 适配器。

限制

资料未提供价格、免费额度或具体计费方式,也未提供除上述步骤外的其他配置选项或平台支持范围。