Gorm-使用迁移升级列约束

Gorm-使用迁移升级列约束,go,go-gorm,Go,Go Gorm,如何使用gorm执行迁移?例如,我需要向列添加约束。我更改了模型(下面的简化示例),但根据文档,AutoMigrate方法不会更改列的约束 那你是怎么做到的呢?我在文件里找不到任何有用的东西 启动模式: type User struct { gorm.Model Name string } 我想这样更新它: type User struct { gorm.Model Name string `gorm:"not null"` } 当添加一个

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

那你是怎么做到的呢?我在文件里找不到任何有用的东西

启动模式:

type User struct {
    gorm.Model
    Name     string
}
我想这样更新它:

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

当添加一个
notnull
约束时,当现有记录不满足新标准时,还需要添加一个
default
值。定义可以是这样的:

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

正如@putu所说,
altertable
肯定会起作用,但您仍然需要在开始时添加一个默认值,以确保非协调行满足新的要求。完成此操作后,您可以根据需要删除默认值,并且从那时起,迁移将按预期进行。

您需要手动更改架构。请看。@putu这就是我想要避免的。使用
gorm
如何?。参见示例用法。