SuperAPI AI 工具集

prisma-database-setup-mysql

编程与开发

查看项目

更新于 10-16 04:17

技能介绍

本技能用于在使用 Prisma 时配置 MySQL(或 MariaDB)数据库,属于 Prisma 该功能的参考文档。

用途

帮助开发者将 Prisma 项目连接到 MySQL 或 MariaDB,并完成必要的配置步骤。

前置条件

  • MySQL 或 MariaDB 数据库
  • 连接字符串

主要配置步骤

1. Schema 配置

在 prisma/schema.prisma 中设置数据源与生成器。数据源 provider 设为 "mysql",生成器 client 设置 provider = "prisma-client"、output = "../generated"。

2. Config 配置(v7)

在 prisma.config.ts 中通过 defineConfig 进行配置,指定 schema 路径为 'prisma/schema.prisma',datasource.url 通过 env('DATABASE_URL') 读取环境变量。

3. 环境变量

在 .env 中设置 DATABASE_URL,例如:"mysql://user:password@localhost:3306/mydb"。

连接字符串格式

mysql://USER:PASSWORD@HOST:PORT/DATABASE

  • USER:数据库用户
  • PASSWORD:密码
  • HOST:主机名
  • PORT:端口(默认 3306)
  • DATABASE:数据库名

驱动适配器(需 Prisma ORM 7)

Prisma ORM 7 默认使用查询编译器,因此必须使用驱动适配器。

安装适配器与驱动: npm install @prisma/adapter-mariadb mariadb

使用适配器实例化 Prisma Client 时,需引入 dotenv/config、从生成的 client 引入 PrismaClient、引入 PrismaMariaDb,并以连接参数(host、port、connectionLimit、user、password、database)创建适配器实例,再以 new PrismaClient({ adapter }) 创建客户端。

PlanetScale 配置

PlanetScale 使用 MySQL,但由于不支持外键约束,需要特定设置:在 prisma/schema.prisma 的数据源中设置 relationMode = "prisma",以在 Prisma 中模拟外键。

常见问题

  • “Too many connections”:MySQL 存在连接数限制,可在 URL 中调整连接池大小,例如 DATABASE_URL="mysql://...?connection_limit=5"。
  • JSON 支持:MySQL 5.7+ 支持 JSON;MariaDB 10.2+ 支持 JSON(作为 LONGTEXT 加检查约束的别名)。Prisma 会处理该情况,但需确认版本。