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 / year | int32 |
| int / integer | int |
| bigint | int64 |
| varchar / char / text / tinytext / mediumtext / longtext / enum / set / time | string |
| datetime / timestamp / date | time.Time |
| decimal / numeric | float64 |
| float | float32 |
| double / real | float64 |
| json | json.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.