SQLからPrismaスキーマ変換
SQL CREATE TABLE文を型マッピング、リレーション、インデックス付きでPrismaスキーマモデルに変換します。
このツールについて
SQLからPrismaスキーマ変換ツールは、SQL CREATE TABLE文を
Prismaスキーマ定義に変換する無料のブラウザベースツールです。Prismaは
Node.jsとTypeScript向けのモダンで型安全なORMで、宣言的なスキーマ
ファイルを使用してデータベースモデルを定義します。既存のSQLデータベース
構造をPrismaのスキーマ形式に手動で変換する代わりに、このツールが
プロセスを自動化し、クリーンで慣用的なPrismaモデルを数秒で生成します。
変換ツールはSQLを解析し、カラム型をPrismaの対応する型にマッピングします。
VARCHAR、INTEGER、BOOLEAN、TIMESTAMP、JSONなどの
標準SQL型はすべて自動的に処理されます。PostgreSQLのSERIAL、BYTEA、
JSONB、MySQLのAUTO_INCREMENTやTINYINT(1)ブーリアンパターン
などのデータベース固有の型も認識します。テーブル名はPascalCaseの
モデル名に、カラム名はcamelCaseのフィールド名に変換され、元の
データベース識別子を保持するために@mapと@@map属性が付与されます。
リレーションはFOREIGN KEY制約やインラインのREFERENCES句から
推論されます。ツールは正しいfieldsとreferences引数を持つ
適切なPrisma @relation属性を生成します。複合主キーは@@idに、
複合ユニーク制約は@@uniqueに、CREATE INDEX文はモデルの
@@indexアノテーションに変換されます。
すべての処理はブラウザ内で完結します。SQL文がお使いの端末から外に 出ることはなく、サーバーとのやり取り、ログ記録、サードパーティ サービスの関与はありません。本番データベーススキーマや機密性の高い テーブル定義でも安全に使用できます。既存データベースのPrismaへの 移行、データモデルのプロトタイピング、SQL構造がPrismaのスキーマ言語に どのように変換されるかの学習に最適なツールです。
使い方
- 左側のSQL Inputパネルに1つ以上のSQL
CREATE TABLE文を貼り付けます。 - 入力しながら右パネルにPrismaスキーマ出力が自動更新されます。
- 正確な型マッピングのためにDatabaseプロバイダー(PostgreSQL、MySQL、SQLite、SQL Server)を選択します。
- @updatedAtを切り替えて、
updated_atという名前のカラムにPrismaの@updatedAt属性を自動追加します。 - **@default(now())**を切り替えて、
created_atという名前のカラムに@default(now())を追加します。 - datasourceを切り替えて、出力の先頭に
datasourceとgeneratorブロックを含めます。 - CopyをクリックするかCtrl+Shift+Cを押して、生成されたPrismaスキーマをクリップボードにコピーします。SampleでサンプルSQLを読み込めます。
人気のSQL→Prisma変換例
よくある質問
どのSQLダイアレクトに対応していますか?
パーサーは標準的なSQL CREATE TABLE構文をサポートし、PostgreSQL、MySQL、SQLite、SQL Serverのダイアレクト固有の機能を処理します。SERIAL / BIGSERIAL(PostgreSQL)、AUTO_INCREMENT(MySQL)、AUTOINCREMENT(SQLite)、IDENTITY(SQL Server)などに対応しています。最も正確な型マッピングを得るために、オプションで正しいデータベースプロバイダーを選択してください。
SQL型はどのようにPrisma型にマッピングされますか?
一般的なマッピング例:INT / INTEGERはIntに、BIGINTはBigIntに、VARCHAR / TEXTはStringに、BOOLEANはBooleanに、DECIMAL / NUMERICはDecimalに、TIMESTAMP / DATETIMEはDateTimeに、JSON / JSONBはJsonに、BLOB / BYTEAはBytesに、UUIDはString @db.Uuidに変換されます。
外部キーはどのようにPrismaリレーションに変換されますか?
インラインのREFERENCES句とテーブルレベルのFOREIGN KEY ... REFERENCES制約の両方が検出されます。ツールは外部キーカラム用のスカラーフィールドと、参照先モデルとフィールドを指す@relation(fields: [...], references: [...])属性付きのリレーションフィールドを生成します。
複合主キーに対応していますか?
はい。SQLがPRIMARY KEY (col1, col2)で複合主キーを定義している場合、ツールは個別の@idアノテーションの代わりに@@id([field1, field2])属性をPrismaモデルに生成します。複合キーのすべてのカラムは必須(non-nullable)としてマークされます。
テーブル名とカラム名はどのように変換されますか?
テーブル名はPrismaモデル名としてPascalCaseに変換されます(例:user_accountsはUserAccountsに)。カラム名はフィールド名としてcamelCaseに変換されます(例:created_atはcreatedAtに)。変換後の名前が元と異なる場合、データベースマッピングを保持するために@map("original_name")または@@map("original_table")属性が追加されます。
データは安全ですか?
はい。すべての解析とコード生成はJavaScriptを使用してブラウザ内で完全に実行されます。データがサーバーに送信されることはありません。ツール使用中にブラウザの開発者ツールのネットワークタブで確認できます。
複数のテーブルを一度に変換できますか?
はい。セミコロンで区切った複数のCREATE TABLE文を貼り付けると、各テーブルに対してPrismaモデルが生成されます。CREATE INDEX文も含めることができ、対応するモデルの@@indexまたは@@unique属性に変換されます。
関連ツール
SQLフォーマッター
MySQL、PostgreSQL、SQLite対応でSQLクエリの整形、美化、圧縮を行います。
JSON → TypeScript変換
JSONからネストされた型推論付きでTypeScriptインターフェースや型エイリアスを生成します。
JSON → Go構造体変換
JSONからjsonタグと適切な命名規則でGoの構造体定義を即座に生成します。
JSONスキーマ生成
サンプルJSONから型推論、必須フィールド、ネストされたオブジェクト対応でJSONスキーマを生成します。
Prisma → SQLスキーマ変換
PrismaスキーマモデルをSQL CREATE TABLE文に変換します。PostgreSQL、MySQL、SQLite対応。
SQL → Sequelizeモデル変換
SQL CREATE TABLE文をSequelizeモデル定義に変換します。DataTypesマッピングとアソシエーション対応。