AgentSkillsCN

prisma-database-setup

提供针对不同数据库提供商(PostgreSQL、MySQL、SQLite、MongoDB 等)的 Prisma 配置指南。适用于新建项目、更换数据库,或排查连接问题时使用。可通过诸如“配置 PostgreSQL”、“连接 MySQL”、“设置 MongoDB”、“SQLite 设置”等短语触发。

SKILL.md
--- frontmatter
name: prisma-database-setup
description: Guides for configuring Prisma with different database providers (PostgreSQL, MySQL, SQLite, MongoDB, etc.). Use when setting up a new project, changing databases, or troubleshooting connection issues. Triggers on "configure postgres", "connect to mysql", "setup mongodb", "sqlite setup".
license: MIT
metadata:
  author: prisma
  version: "1.0.0"

Prisma Database Setup

Comprehensive guides for configuring Prisma ORM with various database providers.

When to Apply

Reference this skill when:

  • Initializing a new Prisma project
  • Switching database providers
  • Configuring connection strings and environment variables
  • Troubleshooting database connection issues
  • Setting up database-specific features
  • Generating and instantiating Prisma Client

System Prerequisites (Prisma ORM 7)

  • Node.js 20.19.0+
  • TypeScript 5.4.0+

Bun Runtime

If you're using Bun, run Prisma CLI commands with bunx --bun prisma ... so Prisma uses the Bun runtime instead of falling back to Node.js.

Supported Databases

DatabaseProvider StringNotes
PostgreSQLpostgresqlDefault, full feature support
MySQLmysqlWidespread support, some JSON diffs
SQLitesqliteLocal file-based, no enum/scalar lists
MongoDBmongodbNOT SUPPORTED IN v7 (Use v6)
SQL ServersqlserverMicrosoft ecosystem
CockroachDBcockroachdbDistributed SQL, Postgres-compatible
Prisma PostgrespostgresqlManaged serverless database

Configuration Files

Prisma v7 uses two main files for configuration:

  1. prisma/schema.prisma: Defines the datasource block.
  2. prisma.config.ts: Configures the connection URL (replaces env loading in schema).

Driver Adapters (Prisma ORM 7)

Prisma ORM 7 uses the query compiler by default, which requires a driver adapter. Choose the adapter and driver for your database and pass the adapter to PrismaClient.

DatabaseAdapterJS Driver
PostgreSQL@prisma/adapter-pgpg
CockroachDB@prisma/adapter-pgpg
Prisma Postgres@prisma/adapter-ppg@prisma/ppg
MySQL / MariaDB@prisma/adapter-mariadbmariadb
SQLite@prisma/adapter-better-sqlite3better-sqlite3
SQLite (Turso/LibSQL)@prisma/adapter-libsql@libsql/client
SQL Server@prisma/adapter-mssqlnode-mssql

Example (PostgreSQL):

ts
import 'dotenv/config'
import { PrismaClient } from '../generated/client'
import { PrismaPg } from '@prisma/adapter-pg'

const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
const prisma = new PrismaClient({ adapter })

Prisma Client Setup (Required)

Prisma Client must be installed and generated for any database.

  1. Install Prisma CLI and Prisma Client:

    bash
    npm install prisma --save-dev
    npm install @prisma/client
    
  2. Add a generator block (output is required in Prisma v7):

    prisma
    generator client {
      provider = "prisma-client"
      output   = "../generated"
    }
    
  3. Generate Prisma Client:

    bash
    npx prisma generate
    
  4. Instantiate Prisma Client with the database-specific driver adapter:

    typescript
    import { PrismaClient } from '../generated/client'
    import { PrismaPg } from '@prisma/adapter-pg'
    
    const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
    const prisma = new PrismaClient({ adapter })
    
  5. Re-run prisma generate after every schema change.

Quick Reference

PostgreSQL

prisma
datasource db {
  provider = "postgresql"
}

generator client {
  provider = "prisma-client"
  output   = "../generated"
}

MySQL

prisma
datasource db {
  provider = "mysql"
}

generator client {
  provider = "prisma-client"
  output   = "../generated"
}

SQLite

prisma
datasource db {
  provider = "sqlite"
}

generator client {
  provider = "prisma-client"
  output   = "../generated"
}

MongoDB (Prisma v6 only)

prisma
datasource db {
  provider = "mongodb"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

Rule Files

See individual rule files for detailed setup instructions:

code
rules/postgresql.md
rules/mysql.md
rules/sqlite.md
rules/mongodb.md
rules/sqlserver.md
rules/cockroachdb.md
rules/prisma-postgres.md
rules/prisma-client-setup.md