piapia123
ja

CREATE TABLE をコードに変換

変換

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

1 つの CREATE TABLE 文から 4 種類の成果物を作ります。JSON のサンプルデータ(API ドキュメントのレスポンス例に)、HTML フォーム(列の型に合ったコントロール付き)、Yii2 モデル(class・rules・attributeLabels)、Postman コレクション(そのテーブルの CRUD 雛形、そのままインポートできます)。列の型は自動で判別します —— int と decimal は数値、tinyint(1) は真偽値、date と datetime はそれぞれ専用の入力欄、enum はセレクト、text と json はテキストエリアになります。フォームのラベルは列の COMMENT を優先するので、テーブル作成時に書いたコメントがここで効いてきます。パーサーは実際の入力を前提にしています。mysqldump や GUI クライアントからコピーしたものには条件コメント・DROP TABLE・索引・外部キーが付いてきますが、それらは解析を壊さず読み飛ばされます。

機能

  • 4 種類の成果物:JSON サンプルデータ、HTML フォーム、Yii2 ActiveRecord モデル、Postman コレクション
  • 列の型を自動判別:整数と decimal は数値、tinyint(1) は真偽値、date / datetime / time、json、text、enum
  • フォームのコントロールを型で選ぶ:テキスト、数値、日付、日時、時刻、テキストエリア、enum はセレクト、真偽値はチェックボックス
  • フォームのラベルは列の COMMENT を優先し、無ければ列名にフォールバック
  • 自動採番の主キーはフォームに出さない —— ID 欄があると入力必須だと誤解されるため
  • NULL 可の列には required を付けず、文字列型には maxlength を付ける
  • Yii モデルの rules() はすべての列を網羅(書かれていない属性は Yii 側で弾かれるため)
  • 生成される PHP では引用符とバックスラッシュが正しくエスケープされる
  • Postman コレクションには List / Create / Get one / Update / Delete の 5 リクエストと baseUrl 変数が入る
  • 実際の入力に対応:条件コメント、DROP TABLE、索引・外部キー定義、行末コメントはすべて読み飛ばす
  • COMMENT の中の二重ハイフンを SQL の行コメントと誤認しない
  • 処理はすべてブラウザ内で完結し、スキーマは送信されません

使い方

  1. CREATE TABLE 文を貼り付ける
  2. 生成するものを選ぶ
  3. 結果をコピー —— JSON と Postman コレクションはそのまま使え、フォームとモデルはパスや名前空間を自分のプロジェクトに合わせてください

よくある質問

どのデータベースの DDL に対応していますか?
主な対象は MySQL(MariaDB を含む)です。バッククォート、AUTO_INCREMENT、COMMENT、enum、tinyint(1) を MySQL の意味どおりに扱います。PostgreSQL の定義も多くの場合で列と型を読み取れますが、serial や ::text は通常の型として処理されます。SQL Server の [dbo].[orders] のような名前は認識できません —— その場合は表名を推測せず「CREATE TABLE が見つかりません」と明示して終わります。
一度に複数のテーブルを処理できますか?
できません。複数の CREATE TABLE がある場合、最初の 1 つだけを使い、残りは無視します。4 種類の成果物はいずれも「1 つのテーブル」についてのもの(フォームの項目、モデルのクラス名、コレクションのパス)なので、4 テーブル分を一度に出すと、そのままでは使えない混合物になります。
フォームに自動採番の主キーが無いのはなぜですか?
その値は入力する人が渡すものではないからです。ID の入力欄があると、自分で何か入れなければならないと誤解されます —— 実際にはデータベースかバックエンドが管理します。Yii モデルでは逆に、id を rules() に残しています(Yii 公式の gii 生成器と同じ挙動)。既存レコードの更新時に検証が必要だからです。
JSON の値が string や 0、2026-01-01 なのはなぜですか?
これは雛形であってモックデータではないからです。一目でプレースホルダーと分かる値なので実データと取り違えられません。一方で型どおりの形(数値は数値、真偽値は真偽値、json はオブジェクト)こそが本当に伝えたい情報で、API ドキュメントのレスポンス例が正しい構造かを確認するのはまさにそこです。リアルな偽データが必要な場合はモックデータ生成ツールをお使いください。
Postman コレクションはどう使いますか?
出力を .json ファイルとして保存し、Postman の File → Import から読み込みます。パスはテーブル名から作られ(product テーブルなら /product)、baseUrl 変数の初期値は http://localhost:3000 です —— インポート後にこの 1 つを変えれば、コレクション全体が自分の環境を向きます。POST と PUT のボディはこのテーブルの JSON 雛形なので、そのまま送ればバックエンドがこれらのフィールドを受け取れるかがすぐ分かります。
スキーマは送信されますか?
いいえ。解析と生成はブラウザのメモリ上だけで行われ、ページは一切リクエストを送りません。オフラインでも動作します。テーブル定義には命名規則や業務上の意味が含まれますが、それらが端末の外に出ることはありません。

関連ツール