prisma-database-setup-mysql

от prisma

Настройка MySQL. Справочная информация при использовании этой функции Prisma.

npx skills add https://github.com/prisma/cursor-plugin --skill prisma-database-setup-mysql

MySQL Setup

Configure Prisma with MySQL (or MariaDB).

Prerequisites

  • MySQL or MariaDB database
  • Connection string

1. Schema Configuration

In prisma/schema.prisma:

datasource db {
  provider = "mysql"
}

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

2. Config Configuration (v7)

In prisma.config.ts:

import { defineConfig, env } from 'prisma/config'

export default defineConfig({
  schema: 'prisma/schema.prisma',
  datasource: {
    url: env('DATABASE_URL'),
  },
})

3. Environment Variable

In .env:

DATABASE_URL="mysql://user:password@localhost:3306/mydb"

Connection String Format

mysql://USER:PASSWORD@HOST:PORT/DATABASE
  • USER: Database user
  • PASSWORD: Password
  • HOST: Hostname
  • PORT: Port (default 3306)
  • DATABASE: Database name

Driver Adapter (Prisma ORM 7 required)

Prisma ORM 7 uses the query compiler by default, so you must use a driver adapter.

  1. Install adapter and driver:

    npm install @prisma/adapter-mariadb mariadb
    
  2. Instantiate Prisma Client with the adapter:

    import 'dotenv/config'
    import { PrismaClient } from '../generated/client'
    import { PrismaMariaDb } from '@prisma/adapter-mariadb'
    
    const adapter = new PrismaMariaDb({
      host: 'localhost',
      port: 3306,
      connectionLimit: 5,
      user: process.env.MYSQL_USER,
      password: process.env.MYSQL_PASSWORD,
      database: process.env.MYSQL_DATABASE,
    })
    
    const prisma = new PrismaClient({ adapter })
    

PlanetScale Setup

PlanetScale uses MySQL but requires specific settings because it doesn't support foreign key constraints.

In prisma/schema.prisma:

datasource db {
  provider     = "mysql"
  relationMode = "prisma" // Emulate foreign keys in Prisma
}

Common Issues

"Too many connections"

MySQL has a connection limit. Adjust connection pool size in URL:

DATABASE_URL="mysql://...?connection_limit=5"

JSON Support

MySQL 5.7+ supports JSON. MariaDB 10.2+ supports JSON (as an alias for LONGTEXT with check constraints). Prisma handles this, but verify your version.

Больше skills от prisma

prisma-cli-migrate-reset
prisma
prisma migrate reset
official
prisma-cli-validate
prisma
prisma validate. Справочная информация при использовании этой функции Prisma.
official
prisma-next-extension-upgrade
prisma
Upgrade Prisma Next in your extension. Bumps every `@prisma-next/*` dependency to the requested target (or npm `latest`), runs the per-transition upgrade…
official
adr-review
prisma
Проверить один или несколько ADR свежим взглядом (как участник команды без предварительного контекста), выявить проблемы в повествовании и структуре, затем переписать их. Используйте, когда…
official
prisma-next-upgrade
prisma
Upgrade Prisma Next in your app. Bumps every `@prisma-next/*` dependency from the version pinned in the lockfile to the requested target (or npm `latest`),…
official
prisma-cli
prisma
Полное руководство по командам, опциям и рабочим процессам Prisma CLI для настройки, миграций и операций с базами данных. Охватывает более 20 команд, сгруппированных по приоритету: настройка (init), генерация (generate), разработка (dev), операции с базами данных (db pull/push/seed/execute) и миграции (migrate dev/deploy/reset/status/diff/resolve). Включает изменения в Prisma 7.x: новый файл конфигурации prisma.config.ts, удаленные флаги (--skip-generate, --skip-seed, --schema, --url) и явные...
official
prisma-client-api
prisma
Полный справочник API Prisma Client для запросов к моделям, операций CRUD, фильтрации, связей и транзакций. Охватывает 17 методов запросов к моделям, включая findUnique, findMany, create, update, delete, upsert и массовые операции с вариантами возврата. Предоставляет опции запросов для формирования результатов: select, include, omit, orderBy, take, skip, cursor и distinct. Включает скалярные и логические операторы фильтрации (equals, in, contains, startsWith, lt, gt), а также фильтры по связям (some,...
official
prisma-compute
prisma
Prisma Compute deployment and hosting guide. Use whenever the user mentions Prisma Compute, `prisma.compute.ts`, `defineComputeConfig`, deploying or hosting a Prisma app, `@prisma/cli app deploy`, `compute:deploy`, `create-prisma --deploy`, `PRISMA_SERVICE_TOKEN`, `auth workspace`, Compute apps/deployments/build logs/domains, `@prisma/cli agent install`, localhost vs `0.0.0.0`, deploy port binding, or framework deploy readiness for Hono, Elysia, Next.js, TanStack Start, Astro, Nuxt, Svelte,...
developmentdevopsofficial