基本的な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スキーマを共有する必要があります。