【问题标题】:Gorm change column lengthGorm 更改列长
【发布时间】:2021-02-07 18:10:31
【问题描述】:

我目前有以下结构的表:

type Action struct {
    ID            uint   `gorm:"primary_key" json:"id"`
    ActionType    string `json:"action_type"`
    ChangedColumn string `json:"changed_column"`
    NewValue      string `json:"new_value"`
}

默认情况下,GORM 已将NewValue 列创建为VARCHAR(255),但是我需要更长的时间,并且通过阅读他们的迁移文档,我无法弄清楚如何做到这一点。我将gorm:"size:4095" 添加到NewValue 并添加了迁移tx.AutoMigrate(&models.Action{}),但该列仍然是VARCHAR(255)

如何将列长度从VARCHAR(255) 更改为VARCHAR(4095)

【问题讨论】:

    标签: database sqlite go orm go-gorm


    【解决方案1】:

    我的问题是您无法更改 SQLite 中的列。我的解决方法是重命名表,使用修改后的长度创建一个新表,然后插入数据。

    tx.Model(&models.Action{}).Exec("ALTER TABLE actions RENAME TO actions_old")
    tx.AutoMigrate(&models.Action{})
    tx.Model(&models.Action{}).Exec("INSERT INTO actions SELECT * FROM actions_old")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 2021-05-19
      • 2012-02-08
      • 1970-01-01
      相关资源
      最近更新 更多