SQLからPrismaスキーマ変換

SQL CREATE TABLE文を型マッピング、リレーション、インデックス付きでPrismaスキーマモデルに変換します。

このツールについて

SQLからPrismaスキーマ変換ツールは、SQL CREATE TABLE文を Prismaスキーマ定義に変換する無料のブラウザベースツールです。Prismaは Node.jsとTypeScript向けのモダンで型安全なORMで、宣言的なスキーマ ファイルを使用してデータベースモデルを定義します。既存のSQLデータベース 構造をPrismaのスキーマ形式に手動で変換する代わりに、このツールが プロセスを自動化し、クリーンで慣用的なPrismaモデルを数秒で生成します。

変換ツールはSQLを解析し、カラム型をPrismaの対応する型にマッピングします。 VARCHARINTEGERBOOLEANTIMESTAMPJSONなどの 標準SQL型はすべて自動的に処理されます。PostgreSQLのSERIALBYTEAJSONB、MySQLのAUTO_INCREMENTTINYINT(1)ブーリアンパターン などのデータベース固有の型も認識します。テーブル名はPascalCaseの モデル名に、カラム名はcamelCaseのフィールド名に変換され、元の データベース識別子を保持するために@map@@map属性が付与されます。

リレーションはFOREIGN KEY制約やインラインのREFERENCES句から 推論されます。ツールは正しいfieldsreferences引数を持つ 適切なPrisma @relation属性を生成します。複合主キーは@@idに、 複合ユニーク制約は@@uniqueに、CREATE INDEX文はモデルの @@indexアノテーションに変換されます。

すべての処理はブラウザ内で完結します。SQL文がお使いの端末から外に 出ることはなく、サーバーとのやり取り、ログ記録、サードパーティ サービスの関与はありません。本番データベーススキーマや機密性の高い テーブル定義でも安全に使用できます。既存データベースのPrismaへの 移行、データモデルのプロトタイピング、SQL構造がPrismaのスキーマ言語に どのように変換されるかの学習に最適なツールです。

使い方

  1. 左側のSQL Inputパネルに1つ以上のSQL CREATE TABLE文を貼り付けます。
  2. 入力しながら右パネルにPrismaスキーマ出力が自動更新されます。
  3. 正確な型マッピングのためにDatabaseプロバイダー(PostgreSQL、MySQL、SQLite、SQL Server)を選択します。
  4. @updatedAtを切り替えて、updated_atという名前のカラムにPrismaの@updatedAt属性を自動追加します。
  5. **@default(now())**を切り替えて、created_atという名前のカラムに@default(now())を追加します。
  6. datasourceを切り替えて、出力の先頭にdatasourcegeneratorブロックを含めます。
  7. CopyをクリックするかCtrl+Shift+Cを押して、生成されたPrismaスキーマをクリップボードにコピーします。SampleでサンプルSQLを読み込めます。

人気のSQL→Prisma変換例

すべての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属性に変換されます。

関連ツール