duanjiao7440 2017-04-26 11:37
浏览 46
已采纳

Gorm-通过迁移升级列约束

How do you perform a Migration with gorm? For example, I need to add a constraint to a column. I changed my model (simplified example below), but the AutoMigrate method, according to the docs, will not change column's constraints.

How do you achieve it then? I cannot find anything useful in the docs

Starting model:

type User struct {
    gorm.Model
    Name     string
}

I would like to update it like this:

type User struct {
    gorm.Model
    Name     string   `gorm:"not null"`
}
  • 写回答

1条回答 默认 最新

  • duanpan3166 2017-05-09 23:57
    关注

    When adding a not null constraint, then a default value will also need to be added for when the existing records do not meet the new criteria. The definition could be something like:

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

    As @putu said, ALTER TABLE will certainly work, but you would still need to add a default value initially to ensure the non-comforming rows meet the new requirements. Once this has been done you can remove the default value if you desire and the migration will work as intended from that point on.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应