本文へ移動
cccskills
無料GitHub で公開日本語紹介

prisma

Prismaのスキーマ変更からマイグレーション作成、各アプリでの型再生成までの手順と、モデルごとの接頭辞付きCUIDによるID規約を確認できます。

原文原文の説明を見る

Prisma schema conventions and migration workflow

trycompai/compスター 2,058(GitHub 2,058 + cccskills 0)

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • スキーマ変更の手順を確認したいとき
  • マイグレーション後の型再生成を整理したいとき
  • モデルIDの接頭辞規約を確認したいとき

日本語での紹介

できること

Prismaのスキーマを変更してからマイグレーションを作成し、データベースを使う各アプリでPrismaクライアントの型を再生成する流れを確認できます。スキーマの配置先としてpackages/db/prisma/schema/を示し、bunx prisma migrate devでマイグレーションを作る手順や、apps/app、apps/api、apps/portalでdb:generateを実行する例をまとめています。モデルのIDにはgenerate_prefixed_cuidを使い、usrやorgのような短く一意な接頭辞を付ける規約も扱います。dbgenerated()で関数を包み、::textを含める点も確認できます。

こんなときに便利

Prismaのモデルや項目を追加・変更するとき、マイグレーション後に型の再生成を忘れないよう手順を確認したい場合に向いています。新しいモデルのID形式を既存の規約に合わせたいときにも役立ちます。

使い方の例

  • 「このモデル変更に必要なマイグレーションと型再生成の手順を整理して」
  • 「新しいモデルに使う接頭辞付きCUIDの定義を確認して」

注意点

記載の手順ではbunとPrisma CLIを使います。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(1)

  • SKILL.md3.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Source Cursor rule: .cursor/rules/prisma.mdc. Original file scope: **/*.prisma. Original Cursor alwaysApply: false.

Prisma Schema

Migration Workflow

Schema changes happen in packages/db, then regenerate types in each app.

Step 1: Edit Schema

# Schema files are in packages/db/prisma/schema/
packages/db/prisma/schema/
├── schema.prisma      # Main schema with datasource
├── user.prisma        # User models
├── task.prisma        # Task models
└── ...

Step 2: Create Migration

# Run from packages/db
cd packages/db
bunx prisma migrate dev --name your_migration_name

Step 3: Regenerate Types in Apps

# Each app needs to regenerate Prisma client types
bun run -F apps/app db:generate
bun run -F apps/api db:generate
bun run -F apps/portal db:generate

# Or from root (if configured)
bun run prisma:generate

✅ Always Do This

# 1. Make schema changes in packages/db
# 2. Create migration
cd packages/db && bunx prisma migrate dev --name add_user_role

# 3. Regenerate types in ALL apps that use the db
bun run -F apps/app db:generate
bun run -F apps/api db:generate
bun run -F apps/portal db:generate

❌ Never Do This

# Don't edit schema in app directories
apps/app/prisma/schema.prisma  # ❌ Wrong location

# Don't forget to regenerate types
bunx prisma migrate dev  # ✅ Created migration
# ... forgot to run db:generate in apps  # ❌ Types out of sync

Core Rule

Always use prefixed CUIDs for IDs using generate_prefixed_cuid.

ID Pattern

✅ Always Do This

model User {
  id String @id @default(dbgenerated("generate_prefixed_cuid('usr'::text)"))
  // ... other fields
}

model Task {
  id String @id @default(dbgenerated("generate_prefixed_cuid('tsk'::text)"))
  // ... other fields
}

model Organization {
  id String @id @default(dbgenerated("generate_prefixed_cuid('org'::text)"))
  // ... other fields
}

❌ Never Do This

// Don't use UUID
model User {
  id String @id @default(uuid())
}

// Don't use auto-increment
model User {
  id Int @id @default(autoincrement())
}

// Don't forget ::text cast
model User {
  id String @id @default(dbgenerated("generate_prefixed_cuid('usr')")) // ❌ Missing ::text
}

Prefix Guidelines

EntityPrefixExample ID
Userusrusr_BJRIZLgRPuWt8MvMjkSY82f1
Organizationorgorg_cK9xMnPqRs2tUvWx3yZa4b5c
Tasktsktsk_dE6fGhIj7kLmNoP8qRsT9uVw
Controlctlctl_xY0zAaBb1cDdEe2fFgGh3iIj
Policypolpol_kK4lLmMn5oOpPq6rRsSt7uUv

Rules

  1. Short prefixes - Use 2-3 characters
  2. Unique prefixes - Each model gets its own prefix
  3. Always cast - Include ::text in the function call
  4. Use dbgenerated - Wrap the function call in dbgenerated()

Benefits

  • Human-readable IDs at a glance (usr_ vs org_)
  • Easy debugging in logs
  • Safe to expose in URLs
  • Unique across all tables

Checklist

After schema changes:

  • Schema edited in packages/db/prisma/schema/
  • Migration created with bunx prisma migrate dev
  • Types regenerated in apps/app with db:generate
  • Types regenerated in apps/api with db:generate
  • Types regenerated in apps/portal with db:generate
  • New models use prefixed CUID IDs

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

api-endpoint-contract

無料概要あり

APIエンドポイントの追加・変更で、DTO、入力検証、OpenAPI仕様、MCPツールの説明や公開範囲を揃え、エージェントからも扱いやすいAPIに整えます。

  • APIエンドポイントを追加したいとき
  • DTOと入力検証を整えたいとき
  • MCPツールとしてAPIを公開したいとき
trycompai/comp2,0582026年10月24日 更新

audit-design-system

無料概要あり

既存コードのデザインシステム利用状況を調べ、旧UI部品やlucide-reactのアイコンを@trycompai/design-systemの部品・Carbonアイコンへ置き換えるスキルです。

  • 旧UI部品を移行したいとき
  • アイコンをCarbonに置き換えたいとき
  • 画面のデザインシステム準拠を確認するとき
trycompai/comp2,0582026年10月24日 更新

audit-hooks

無料概要あり

指定されたファイルのフックやAPI利用を点検し、禁止パターンをSWRやapiClientなどの指定方式へ修正するための監査手順と実装規約をまとめています。

  • 既存コードのAPI利用を点検したいとき
  • 生のfetchをapiClientに置き換えたいとき
  • 更新処理をSWRのmutateにそろえたいとき
trycompai/comp2,0582026年10月24日 更新

audit-rbac

無料概要あり

NestJSのAPIとフロントエンドを調べ、権限チェックや監査ログのルール違反を修正するための確認項目を示します。

  • APIの権限チェックを点検したいとき
  • 画面操作の権限制御を確認したいとき
  • RBAC違反を修正したいとき
trycompai/comp2,0582026年10月24日 更新

audit-tests

無料概要あり

権限で表示や操作が変わるコンポーネントの単体テストを点検し、不足分の追加や失敗の修正を行って、管理者と閲覧専用ユーザーの動作を確かめます。

  • 権限別の単体テストを追加したいとき
  • 管理者と監査ユーザーの表示を検証したいとき
  • 失敗する権限テストを修正したいとき
trycompai/comp2,0582026年10月24日 更新

better-auth-best-practices

無料概要あり

Better Authを使ったTypeScript認証の設定を支援し、データベース接続、セッション管理、メール認証、OAuth、プラグインやセキュリティ項目を整理します。

  • Better Authで認証を導入したいとき
  • DBやORMアダプターを接続したいとき
  • セッションの保存方法を設定したいとき
trycompai/comp2,0582026年10月24日 更新

trycompai のスキルをすべて見る

このスキルの問題を報告する