SQLからSequelizeモデル変換
SQL CREATE TABLE文をDataTypesマッピング、アソシエーション、インデックス付きでSequelizeモデル定義に変換します。
このツールについて
SQLからSequelize変換ツールは、SQL CREATE TABLE文をSequelizeモデル定義に変換する無料のブラウザベースツールです。SequelizeはNode.jsで最も人気のORMで、PostgreSQL、MySQL、MariaDB、SQLite、Microsoft SQL Serverをサポートしています。Model.init()呼び出しを手動で書き、すべてのカラム型をDataTypes定数にマッピングする代わりに、このツールがプロセス全体を自動化し、クリーンで本番環境対応のSequelizeモデルを数秒で生成します。
変換ツールはSQLを解析し、カラム型をSequelizeのDataTypesにマッピングします。VARCHAR、INTEGER、BOOLEAN、TIMESTAMP、JSONなどの標準SQL型はすべて自動的に処理されます。PostgreSQLのSERIALやJSONB、MySQLのAUTO_INCREMENTやTINYINT(1)ブーリアンパターンなどのデータベース固有の型も認識し、DataTypes.UUID、DataTypes.JSONB、DataTypes.DATEONLYなどの正しいSequelize定数にマッピングします。
リレーションはFOREIGN KEY制約やインラインのREFERENCES句から推論されます。ツールは正しいforeignKeyとtargetKeyオプションを持つbelongsToアソシエーションを生成し、コメント付きのhasMany逆方向アソシエーションのヒントも提供します。
TypeScriptとJavaScriptの出力を切り替えられます。TypeScriptモードではAttributesとCreationAttributesインターフェース、Model<>ジェネリクス、型付きクラスプロパティを含む完全な型安全コードを生成します。JavaScriptモードではCommonJSのrequire構文を生成します。
すべての処理はブラウザ内で完結します。SQL文がお使いの端末から外に出ることはなく、サーバーとのやり取り、ログ記録、サードパーティサービスの関与はありません。本番データベーススキーマでも安全に使用できます。他のORMをお使いの場合は、Prismaスキーマ生成用のSQLからPrisma変換ツールもお試しください。
使い方
- 左側のSQL Inputパネルに1つ以上のSQL
CREATE TABLE文を貼り付けます。 - 入力しながら右パネルにSequelizeモデル出力が自動更新されます。
- TypeScriptとJavaScriptを切り替えて、お好みの出力形式を選択します。
- TypeScriptモードでは型付きの
Modelクラス定義がAttributesとCreationAttributesインターフェース付きで生成されます。 - JavaScriptモードではCommonJSスタイルのコードが
requireとmodule.exports付きで生成されます。 - CopyをクリックするかCtrl+Shift+Cを押して、生成されたSequelizeコードをクリップボードにコピーします。
- Sampleで複数テーブルと外部キーリレーションを含むサンプルSQLを読み込めます。
人気のSQL→Sequelize変換例
よくある質問
どのSQLダイアレクトに対応していますか?
パーサーは標準的なSQL CREATE TABLE構文をサポートし、PostgreSQL、MySQL、SQLite、SQL Serverのダイアレクト固有の機能を処理します。SERIAL / BIGSERIAL(PostgreSQL)、AUTO_INCREMENT(MySQL)、AUTOINCREMENT(SQLite)、IDENTITY(SQL Server)などに対応しています。生成されたSequelizeコードはSequelizeがサポートするすべてのデータベースで動作します。
SQL型はどのようにSequelize DataTypesにマッピングされますか?
一般的なマッピング例:VARCHARはDataTypes.STRINGに、INT/INTEGERはDataTypes.INTEGERに、BIGINTはDataTypes.BIGINTに、BOOLEANはDataTypes.BOOLEANに、DECIMAL/NUMERICはDataTypes.DECIMALに、TIMESTAMP/DATETIMEはDataTypes.DATEに、DATEはDataTypes.DATEONLYに、JSONはDataTypes.JSONに、JSONBはDataTypes.JSONBに、TEXTはDataTypes.TEXTに、UUIDはDataTypes.UUIDに、BLOB/BYTEAはDataTypes.BLOBに変換されます。VARCHAR(255)のような長さパラメータはDataTypes.STRING(255)として保持されます。
外部キーはどのようにSequelizeアソシエーションに変換されますか?
インラインのREFERENCES句とテーブルレベルのFOREIGN KEY制約の両方が検出されます。ツールはforeignKeyとtargetKeyオプション付きのbelongsToアソシエーションを生成し、コメント付きのhasMany逆方向アソシエーションのヒントも提供します。
TypeScriptとJavaScript出力の違いは何ですか?
TypeScript出力には完全な型定義が含まれます:全カラム用のAttributesインターフェース、オプショナルフィールド(オートインクリメント、nullable、デフォルト)用のCreationAttributes型、Model<Attributes, CreationAttributes>を拡張するクラス、型付きプロパティ。JavaScript出力は型アノテーションなしのCommonJS require/module.exports構文を使用します。
複合主キーとインデックスに対応していますか?
はい。PRIMARY KEY (col1, col2)で定義された複合主キーはSequelizeのindexesオプションにunique: trueのエントリとして変換されます。複合ユニーク制約はユニークインデックスエントリに、CREATE INDEX文は通常のインデックスエントリになります。複合主キーのすべてのカラムはallowNull: falseとしてマークされます。
データは安全ですか?
はい。すべての解析とコード生成はJavaScriptを使用してブラウザ内で完全に実行されます。データがサーバーに送信されることはありません。ツール使用中にブラウザの開発者ツールのネットワークタブで確認できます。
複数のテーブルを一度に変換できますか?
はい。セミコロンで区切った複数のCREATE TABLE文を貼り付けると、各テーブルに対してSequelizeモデルが生成されます。テーブル間の外部キーリレーションは自動的に検出され、アソシエーション宣言に変換されます。
関連ツール
SQL → Prismaスキーマ変換
SQL CREATE TABLE文をPrismaスキーマモデルに変換します。一般的なSQL型とリレーションに対応。
SQL → Drizzleスキーマ変換
SQL CREATE TABLE文をDrizzle ORMスキーマ定義に変換します。型安全なカラムビルダー付き。
SQLフォーマッター
MySQL、PostgreSQL、SQLite対応でSQLクエリの整形、美化、圧縮を行います。
JSON → SQLスキーマ変換
JSONからCREATE TABLE文を生成。MySQL、PostgreSQL、SQLite対応で自動型推論付き。
SQL → MongoDBクエリ変換
SQL SELECT文をMongoDBのfind()およびaggregate()クエリに変換します。全句サポート。
Prisma → SQLスキーマ変換
PrismaスキーマモデルをSQL CREATE TABLE文に変換します。PostgreSQL、MySQL、SQLite対応。