Gorm - 通过迁移升级列约束
Gorm - upgrading columns constraint with migration
如何使用 gorm 执行迁移?例如,我需要向列添加约束。我更改了我的模型(下面的简化示例),但根据文档,AutoMigrate 方法不会更改列的约束。
那你是怎么实现的呢?我在文档中找不到任何有用的东西
起始模型:
type User struct {
gorm.Model
Name string
}
我想这样更新:
type User struct {
gorm.Model
Name string `gorm:"not null"`
}
添加 not null
约束时,当现有记录不符合新条件时,还需要添加 default
值。定义可能类似于:
type User struct {
gorm.Model
Name string `gorm:"not null;default:'fillertext'"`
}
正如@putu 所说,ALTER TABLE
肯定会起作用,但您最初仍需要添加默认值以确保不符合要求的行满足新要求。完成此操作后,您可以根据需要删除默认值,迁移将从那时起按预期进行。
如何使用 gorm 执行迁移?例如,我需要向列添加约束。我更改了我的模型(下面的简化示例),但根据文档,AutoMigrate 方法不会更改列的约束。
那你是怎么实现的呢?我在文档中找不到任何有用的东西
起始模型:
type User struct {
gorm.Model
Name string
}
我想这样更新:
type User struct {
gorm.Model
Name string `gorm:"not null"`
}
添加 not null
约束时,当现有记录不符合新条件时,还需要添加 default
值。定义可能类似于:
type User struct {
gorm.Model
Name string `gorm:"not null;default:'fillertext'"`
}
正如@putu 所说,ALTER TABLE
肯定会起作用,但您最初仍需要添加默认值以确保不符合要求的行满足新要求。完成此操作后,您可以根据需要删除默认值,迁移将从那时起按预期进行。