pingcap/agent-rules

tidbx-prisma

Prisma ORM setup and usage for TiDB from Node.js/TypeScript.

First seen Mar 7, 2026

Installation

$ npx skills add pingcap/agent-rules --skill tidbx-prisma

Summary

  • Prisma ORM setup and usage for TiDB from Node.js/TypeScript.
  • Covers configuring prisma/schema.prisma (MySQL provider), DATABASE_URL formatting for TiDB Cloud TLS (sslaccept=strict and optional sslcert), migrations (prisma migrate), Prisma Client generation, CRUD patterns, and safe raw SQL ($queryRaw) plus runnable templates.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from pingcap/agent-rules · top by installs.

npx skills add pingcap/agent-rules

Browse all from pingcap/agent-rules

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 25
Default branch main
Open issues 2
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,842 B
  • docs SUMMARY.md 346 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 14 installs

SKILL.md

TiDB Prisma Integration

Comprehensive Prisma ORM setup for TiDB with guided workflows.

When to use this skill

  • Set up Prisma in a new Node.js/TypeScript project
  • Add Prisma to an existing project
  • Define/modify models and run migrations
  • Configure TiDB Cloud TLS correctly via DATABASE_URL
  • Troubleshoot Prisma connection or migration issues

Prisma vs drivers

Prisma is an ORM (models + migrations + typed client). If you only need a low-level MySQL driver, use:

  • tidbx-javascript-mysql2 (promise-native)
  • tidbx-javascript-mysqljs (callback-based)

Available guides

  • guides/quickstart.md -- new project: install -> init -> migrate -> run TS quickstart
  • guides/troubleshooting.md -- common TLS/connection/client-generation issues

I'll pick the smallest guide that matches your request, then use templates/scripts as needed.

Quick examples

  • "Add Prisma to my existing Node API and connect to TiDB Cloud" -> follow quickstart, then integrate client
  • "My TiDB Cloud public endpoint fails with TLS errors" -> fix DATABASE_URL TLS params
  • "Create tables from my Prisma models" -> run prisma migrate dev

Reference: datasource config

In prisma/schema.prisma, use the MySQL connector and read DATABASE_URL:

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

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

TLS notes for TiDB Cloud public endpoints

For TiDB Cloud public endpoints, configure TLS via query params in DATABASE_URL:

  • Serverless/Starter/Essential (public endpoint): append ?sslaccept=strict
  • Dedicated (public endpoint with downloaded CA): append ?sslaccept=strict&sslcert=/absolute/path/to/ca.pem

Examples:

DATABASE_URL='mysql://USER:PASSWORD@HOST:4000/DATABASE?sslaccept=strict'
DATABASE_URL='mysql://USER:PASSWORD@HOST:4000/DATABASE?sslaccept=strict&sslcert=/absolute/path/to/ca.pem'

Install (TypeScript)

npm i @prisma/client
npm i -D prisma typescript ts-node @types/node

Core patterns

Create client and disconnect (always)

import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()
try {
  // ... queries ...
} finally {
  await prisma.$disconnect()
}

Safe raw SQL (parameterized)

  • Prefer Prisma query builder when possible.
  • When you need raw SQL, prefer $queryRaw with template literals (parameterized).
  • Avoid $queryRawUnsafe unless you fully control the SQL.
const rows = await prisma.$queryRaw`SELECT VERSION() AS version`

Templates & scripts

  • templates/schema.prisma -- example schema (Player/Profile) mapped to TiDB tables
  • templates/quickstart.ts -- minimal Prisma app: connect -> version -> CRUD (run with ts-node)
  • scripts/validate_connection.ts -- connects and prints SELECT VERSION() (run with ts-node)

Related skills

  • tidbx-nextjs -- Next.js App Router integration patterns (route handlers, runtimes, deployment)
  • tidbx-kysely -- typed query builder alternative to Prisma
  • tidbx-javascript-mysql2 -- low-level driver (promise API)
  • tidbx-javascript-mysqljs -- low-level driver (callback API)

Workflow

I will:

  1. Confirm your runtime (Node) and project language (TypeScript)
  2. Confirm your TiDB deployment (TiDB Cloud vs self-managed) and endpoint type
  3. Choose a guide (guides/quickstart.md or guides/troubleshooting.md)
  4. Generate the minimal Prisma files/commands to get you unblocked