Gorm - 通过迁移升级列约束

时间:2017-04-26 11:37:38

标签: go go-gorm

如何使用gorm执行迁移?例如,我需要向列添加约束。我更改了我的模型(下面的简化示例),但根据文档,AutoMigrate方法不会更改列的约束。

你是如何实现的呢?我在文档中找不到任何有用的东西

开始模式:

type User struct {
    gorm.Model
    Name     string
}

我想像这样更新:

type User struct {
    gorm.Model
    Name     string   `gorm:"not null"`
}

1 个答案:

答案 0 :(得分:1)

添加not null约束时,还需要在现有记录不符合新条件时添加default值。定义可能类似于:

type User struct {
    gorm.Model
    Name     string   `gorm:"not null;default:'fillertext'"`
}

正如@putu所说,ALTER TABLE肯定会有效,但您最初仍需要添加默认值,以确保不符合要求的行符合新要求。完成此操作后,您可以根据需要删除默认值,并且迁移将从该点开始按预期工作。