SQL DDL から Prisma スキーマへの変換ツール(モデル・リレーション・Enum)開発者ガイド
SQLのCREATE TABLE DDL文を高精度に解析し、Prisma ORMのモデル定義、リレーション属性、フィールドマッピング、Enumへと瞬時に変換します。
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
enum OrderStatus {
PENDING
PROCESSING
PAID
SHIPPED
DELIVERED
CANCELLED
}
enum UserRole {
ADMIN
CUSTOMER
MERCHANT
}
model User {
id String @id @default(uuid()) @db.Uuid
email String @unique @db.VarChar(255)
fullName String? @map("full_name") @db.VarChar(150)
role UserRole @default("CUSTOMER")
isVerified Boolean @default(false) @map("is_verified")
metadata Json?
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
updatedAt DateTime @default(now()) @updatedAt @map("updated_at") @db.Timestamptz
userProfile UserProfile?
orders Order[]
@@map("users")
}
model UserProfile {
id String @id @default(uuid()) @db.Uuid
userId String @unique @map("user_id") @db.Uuid
avatarUrl String? @map("avatar_url") @db.VarChar(500)
phoneNumber String? @map("phone_number") @db.VarChar(32)
shippingAddress String? @map("shipping_address") @db.Text
taxIdentifier String? @map("tax_identifier") @db.VarChar(64)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@map("user_profiles")
}
model Product {
id Int @id @default(autoincrement())
sku String @unique @db.VarChar(64)
title String @db.VarChar(200)
description String? @db.Text
unitPrice Decimal @default(0.00) @map("unit_price") @db.Decimal(12, 2)
inventoryCount Int @default(0) @map("inventory_count")
isActive Boolean @default(true) @map("is_active")
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
orderItems OrderItem[]
@@index([sku])
@@map("products")
}
model Order {
id String @id @default(uuid()) @db.Uuid
customerId String @map("customer_id") @db.Uuid
orderNumber String @unique @map("order_number") @db.VarChar(64)
status OrderStatus @default("PENDING")
totalAmount Decimal @default(0.00) @map("total_amount") @db.Decimal(12, 2)
taxAmount Decimal @default(0.00) @map("tax_amount") @db.Decimal(10, 2)
shippingNotes String? @map("shipping_notes") @db.Text
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
updatedAt DateTime @default(now()) @updatedAt @map("updated_at") @db.Timestamptz
customer User @relation(fields: [customerId], references: [id], onDelete: Restrict)
orderItems OrderItem[]
@@index([status])
@@map("orders")
}
model OrderItem {
id Int @id @default(autoincrement())
orderId String @map("order_id") @db.Uuid
productId Int @map("product_id")
quantity Int @default(1)
unitPrice Decimal @map("unit_price") @db.Decimal(12, 2)
subtotal Decimal @db.Decimal(12, 2)
order Order @relation(fields: [orderId], references: [id], onDelete: Cascade)
product Product @relation(fields: [productId], references: [id], onDelete: Restrict)
@@unique([orderId, productId])
@@map("order_items")
}100% クライアントサイド保護
サーバーへのデータ送信や外部DB接続はゼロ。SQL DDL の解析、AST 抽出、Prisma スキーマ生成はすべてブラウザ内で安全に完結します。
高度なリレーションと外部キー解決
インラインおよび複合外部キーを自動検出し、双方向の Prisma @relation 属性、逆参照配列、@@id / @@unique 制約を正確に生成します。
マルチダイアレクト対応 DDL エンジン
PostgreSQL、MySQL、SQLite、SQL Server の構文に対応。SERIAL、UUID 初期値、ネイティブ型定義、複合インデックス、Enum を適切に変換します。