登录
首页 >  Golang >  Go问答

Gorm 调整柱高

来源:stackoverflow

时间:2024-03-25 18:48:29 484浏览 收藏

本文讨论了在使用 GORM 库的 Go 应用程序中调整 SQLite 数据库表中列长度的问题。作者最初尝试通过添加 gorm:"size:4095" 注解来增加列长度,但没有成功。原因是 SQLite 数据库不支持修改现有列的长度。作者提供的解决方案是重命名原始表,创建具有修改长度的新表,然后将数据从原始表插入到新表中。

问题内容

我目前有一个包含以下结构的表:

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)


解决方案


我的问题是您无法更改 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")

好了,本文到此结束,带大家了解了《Gorm 调整柱高》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>