Da SQL a GORM

Incolla istruzioni CREATE TABLE MySQL e genera struct modello GORM per Go

Input

Output

Tabella di mappatura dei tipi

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) viene mappato su bool, gli altri tinyint su int32. I tipi SQL non riconosciuti vengono mappati su string e segnalati con un commento nel codice generato.

Come si usa

Incolla una o più istruzioni CREATE TABLE di MySQL nel campo di input, regola le opzioni e fai clic su «Genera codice» per ottenere codice modello GORM per Go pronto da compilare (package e import inclusi). Vengono convertiti chiavi primarie, auto-incremento, NOT NULL, valori predefiniti, commenti, indici univoci e indici normali; più istruzioni generano più struct. Tutta l'elaborazione avviene in locale nel browser: l'SQL non viene caricato su alcun server.

Note sulla mappatura

Le colonne unsigned vengono mappate su tipi Go con segno (es. int unsigned → int); se servono i tipi uint, modifica manualmente. date viene mappato su time.Time, come datetime/timestamp (se preferisci una stringa, cambiala a mano). decimal/numeric viene mappato su float64, con limiti di precisione: per importi e calcoli esatti è consigliato shopspring/decimal. json viene mappato su json.RawMessage e l'import encoding/json viene aggiunto automaticamente.