我正在和戈姆一起开发一款杜松子wine 应用程序.目前,我有以下代表模型的 struct :

// 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
}

如您所见,存在一些约束,例如sizeuniquenot null.

当我运行迁移时

该表实际上是创建的,但不具有指定的约束.

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;

知道我做错了什么吗?

推荐答案

基于doc,我认为应该在标记约束声明之间使用分号(;)而不是逗号(,)

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
}

Mysql相关问答推荐

如何改进对另一个表中多行的查询依赖性

无法从容器从APS. NET应用程序连接到MySQL服务器容器

Laravel DB::Transaction()

MySQL滑动窗口动态间隔?

为什么嵌套循环逻辑不能按预期工作

MySQL:获取连续记录的数量(日期)?

MySQL match against给出奇怪的结果

多列分组并进行求和

MySQL 8.0 可以在 Select 语句中返回 JSON 对象数组吗?

如何在不使用子查询的情况下按最小日期计算新用户?

组平SQL查询结果

当查询 MySQL 的 goroutine 过多时,Go 会出现panic

无法在两个 mysql 表上执行内部联接

判断一对记录是否属于多个组ID

使用 MySQL LIMIT、OFFSET 进行分页

获取Count(*)占GROUP BY中所有项目数的百分比

MAMP mysql 服务器无法启动.没有mysql进程正在运行

Yii2 如何进行 where AND 或 OR 条件分组?

如何将本地托管的 MySQL 数据库与 docker 容器连接

数据截断:第 1 行的logo列数据太长