SQL to GORM 変換

MySQL の CREATE TABLE 文を貼り付けて Go GORM モデル構造体を生成

入力

出力

型マッピング対応表

SQL (MySQL)Go
tinyint(1)bool
tinyint / smallint / mediumint / yearint32
int / integerint
bigintint64
varchar / char / text / tinytext / mediumtext / longtext / enum / set / timestring
datetime / timestamp / datetime.Time
decimal / numericfloat64
floatfloat32
double / realfloat64
jsonjson.RawMessage
binary / varbinary / blob / tinyblob / mediumblob / longblob[]byte

tinyint(1) は bool に、その他の tinyint は int32 にマッピングされます。認識できない SQL 型は string にフォールバックし、生成コード内にコメントで示されます。

使い方

MySQL の CREATE TABLE 文(複数可)を入力欄に貼り付け、必要に応じてオプションを切り替えて「コード生成」をクリックすると、そのままコンパイルできる Go GORM モデルコード(package と import 付き)が得られます。主キー・オートインクリメント・NOT NULL・デフォルト値・コメント・ユニークインデックス・通常インデックスの変換に対応し、複数の文からは複数の構造体が生成されます。すべてブラウザ内で処理され、SQL がサーバーに送信されることはありません。

マッピング方針

unsigned 列は符号付き Go 型にマッピングされます(例: int unsigned → int)。uint 系が必要な場合は手動で調整してください。date は datetime/timestamp と同様に time.Time にマッピングされます(文字列で扱いたい場合は string に変更してください)。decimal/numeric は float64 にマッピングされますが精度に限界があるため、金額などの厳密な計算には shopspring/decimal の利用を推奨します。json は json.RawMessage にマッピングされ、encoding/json の import が自動で追加されます。