SQL vers GORM
Collez des instructions CREATE TABLE MySQL et générez des structs de modèles GORM pour Go
Entrée
Sortie
Table de correspondance des types
| 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) est mappé sur bool, les autres tinyint sur int32. Les types SQL non reconnus sont mappés sur string et signalés par un commentaire dans le code généré.
Mode d'emploi
Collez une ou plusieurs instructions CREATE TABLE MySQL dans le champ de saisie, ajustez les options puis cliquez sur « Générer le code » pour obtenir du code de modèle GORM pour Go prêt à compiler (package et imports inclus). Les clés primaires, l'auto-incrément, NOT NULL, les valeurs par défaut, les commentaires, les index uniques et les index classiques sont convertis ; plusieurs instructions produisent plusieurs structs. Tout le traitement s'effectue localement dans votre navigateur : votre SQL n'est jamais envoyé sur un serveur.
Conventions de mappage
Les colonnes unsigned sont mappées sur des types Go signés (ex. int unsigned → int) ; ajustez manuellement vers les types uint si nécessaire. date est mappé sur time.Time, comme datetime/timestamp (passez à string à la main si besoin). decimal/numeric est mappé sur float64, dont la précision est limitée : pour les montants et les calculs exacts, préférez shopspring/decimal. json est mappé sur json.RawMessage et l'import encoding/json est ajouté automatiquement.