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 / 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) 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.