基本的なPrisma ModelをSQLテーブルに変換する

シンプルなPrismaモデル定義をSQL CREATE TABLE文に変換する方法を学びます。フィールドからカラムへのマッピング、型変換、@id属性を解説します。

Basic Models

詳細な説明

Prisma ModelからCREATE TABLEへ

最も基本的な変換は、PrismaのmodelブロックをSQLのCREATE TABLE文に変換することです。各フィールドは適切なSQL型を持つカラムになり、@idのような属性はSQL制約にマッピングされます。

Prismaスキーマの例

model User {
  id       Int     @id @default(autoincrement())
  name     String
  email    String  @unique
  age      Int?
  isActive Boolean @default(true)

  @@map("users")
}

生成されるSQL(PostgreSQL)

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL UNIQUE,
  age INTEGER,
  is_active BOOLEAN NOT NULL DEFAULT TRUE
);

主要なマッピングルール

Prisma要素 SQLの対応
model テーブル名(snake_caseまたは@@mapの値)
フィールド名 カラム名(snake_caseまたは@mapの値)
必須フィールド NOT NULL制約
オプションフィールド(? Nullableカラム(NOT NULLなし)
@id PRIMARY KEY
@default(...) DEFAULT ...
@unique UNIQUE制約

命名規則

Prismaの規約では、モデル名にPascalCase、フィールド名にcamelCaseを使用します。変換ツールはこれらをSQLのsnake_caseのテーブル名とカラム名に変換します。モデルに@@map("table_name")がある場合、その正確な名前が使用されます。同様に、フィールドの@map("column_name")は自動変換を上書きします。

Nullable vs 必須フィールド

Prismaでは、フィールドはデフォルトで必須です。?サフィックスでオプションになります。変換ツールは必須フィールドにNOT NULLを追加し、オプションフィールドでは省略します。これはSQLのデフォルト動作(制約がない限りカラムはnullable)と逆です。

ユースケース

Prismaで新しいプロジェクトを立ち上げる際に、DBAがデータベース変更を承認する前に生のSQLでテーブル構造を確認するため、同等のSQLスキーマを共有する必要があります。

試してみる — Prisma to SQL Schema

フルツールを開く