登录
首页 >  Golang >  Go问答

自动迁移到 PostgreSQL 时强制 GORM 使用特定的 INTEGER 类型

来源:stackoverflow

时间:2024-04-23 19:12:36 101浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《自动迁移到 PostgreSQL 时强制 GORM 使用特定的 INTEGER 类型》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我的 go 模型是:

type Sales_Daily_db struct {
    Nation_shipping string
    Date             datatypes.Date
    Impressions      int `gorm:"type:integer;"`
    Clicks           int `gorm:"type:integer;"`
    Cost             float32
    ATB              float32
    OKL              float32
}

使用上述模型运行 automigrate() 时,我希望 psql 数据库中的 impressionsclicks 列的类型为 integer。然而,即使使用这些 gorm 标签,它们仍然最终成为 int4 类型。我已经使用上面的标签手动尝试了 int2 int4 int8 ,它们都相应地工作了。此外,当我尝试 int 标记时,它们被强制进入 int8。如何修复此行为并在 psql 中专门获取 integer 类型?

编辑:我正在使用 dbeaver 查看数据库。


正确答案


根据 postgresql 文档,这样说:

SQL only specifies the integer types integer (or int), smallint, and bigint.  
The type names int2, int4, and int8 are extensions, which are also used by some other SQL database systems.

您应该可以使用 intintegersmallintbigint。除此之外的任何内容都只是别名。

到这里,我们也就讲完了《自动迁移到 PostgreSQL 时强制 GORM 使用特定的 INTEGER 类型》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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