Maison > Questions et réponses > le corps du texte
Je développe une application Gin avec Gorm. Actuellement, j'ai la structure suivante représentant le modèle :
// Category represents a category object in the database type Category struct { Name string `json:"name" gorm:"size:60,unique,not null"` Description string `json:"description" gorm:"size:120"` Parent uint `json:"parent"` Active bool `json:"active" gorm:"default:true"` gorm.Model }
Comme vous pouvez le constater, il y a certaines contraintes comme size
、unique
和 not null
.
Quand j'exécute la migration
db.AutoMigrate(&entities.Category{})
La table est effectivement créée mais aucune contrainte n'est spécifiée. Vérifiez le DDL de la table, voici comment elle est créée :
CREATE TABLE `categories` ( `name` longtext DEFAULT NULL, `description` varchar(120) DEFAULT NULL, `parent` int(10) unsigned DEFAULT NULL, `active` tinyint(1) DEFAULT 1, `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `created_at` datetime DEFAULT NULL, `updated_at` datetime DEFAULT NULL, `deleted_at` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_categories_deleted_at` (`deleted_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Une idée de ce que j'ai fait de mal ?
P粉7369355872024-03-27 09:18:07
Selon doc, je pense que vous devriez utiliser le point-virgule (;
)标签约束声明之间的逗号 (,
)
type Category struct { Name string `json:"name" gorm:"size:60;unique;not null"` Description string `json:"description" gorm:"size:120"` Parent uint `json:"parent"` Active bool `json:"active" gorm:"default:true"` gorm.Model }