sqlc.yaml 配置不会覆盖 postgresql 时间间隔到 time.Duration

sqlc.yaml 配置不会覆盖 postgresql 时间间隔到 time.duration

php小编柚子在这里为大家介绍一个关于sqlc.yaml配置的问题。在使用postgresql时,我们经常需要使用时间间隔(time.Duration)来表示一段时间。然而,有时候我们会发现在sqlc.yaml配置文件中进行的时间间隔配置并不会生效,而是被默认的配置所覆盖。这个问题该如何解决呢?请继续阅读本文,我们将给出详细的解答。

问题内容

我发现 sqlc codegen 应用程序存在问题。万一,当我需要 interval (postgresql) 字段时,sqlc 会生成一个带有 int64 字段的对象。此解决方案看起来已损坏,并在扫描行时产生错误: errorf(“cannot conversion %v to interval”, value)

sqlc.yaml:

version: "2"overrides:  go:    overrides:      - db_type: "interval"        engine: "postgresql"        go_type:          import: "time"          package: "time"          type: "https://pkg.go.dev/time#duration"sql:  - queries: "./sql_queries/raffle.query.sql"    schema: "./migrations/001-init.sql"    engine: "postgresql"    gen:     go:        package: "raffle_repo"        out: "../repo/sql/raffle_repo"        sql_package: "pgx/v4"

登录后复制

schema.sql:

create table windowrange(    id        serial    primary key,    open      timestamp not null ,    duration  interval not null,    created_at timestamp default now(),    updated_at timestamp default now(),    raffle_id integer not null        constraint raffle_id            references raffle            on delete cascade);

登录后复制

生成的模型:

type Windowrange struct {    ID        int32    Open      time.Time    Duration  int64    CreatedAt sql.NullTime    UpdatedAt sql.NullTime    RaffleID  int32}

登录后复制

通过将此字段设置为 time.duration 类型,问题很快就得到了修复。duration 和代码开始工作,但此代码是代码生成的,看起来是个错误的决定。

在尝试通过 sqlc.yaml 配置覆盖类型时,我什么都没有,对象仍在创建 int64 类型。我哪里错了,如何解决这个问题?

解决方法

在支持的类型,您将看到 pg_catalog.interval 也是 postgres 中 interval 支持的值之一。

因此,如果您只想使用 time.duration 而不是 int64,则需要将 overrides 部分更改为:

overrides:  go:    overrides:      - db_type: "pg_catalog.interval"        engine: "postgresql"        go_type:          import: "time"          type: "Duration"

登录后复制

提示:如果它不适用于最明显的数据类型,您可以尝试另一种。

以上就是sqlc.yaml 配置不会覆盖 postgresql 时间间隔到 time.Duration的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2356633.html

(0)
上一篇 2025年3月1日 15:55:47
下一篇 2025年3月1日 15:56:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • photoshop将制作出一个逼真的高尔夫球

    先看效果图 首先定义图案。新建文档25×25像素,背景白色。 建新层,画一个黑色正圆,编辑>定义图案。 之后会弹出一个对话框,保存即可,新建文档350×350像素,背景白色,新建图层1,画一个黑色正圆。 添加图案叠…

    2025年4月1日 编程技术
    000
  • photoshop下利用渐变及画笔制作漂亮的河边日出

    最终效果 1、新建文档1920×1200像素,背景白色,双击背景转为普通层,添加图层样式。 2、从左到右颜色分别为#a1b1ca (天空) #ffc16e #d38844 (芦苇) #c48446 (小河) #141412,效果如…

    2025年4月1日 编程技术
    000
  • Photoshop制作一杯浓香的热咖啡教程

    最终效果 1、新建画布768*1024。  2、新建图层,命名杯子。 3、绘制杯子,使用钢笔工具,建议绘制杯子的一半,另一半对称组合。填充白色,背景色换成灰色。 4、同样的方法绘制杯子上半部分,和杯口。 5、对杯子进一步细化,分出杯子的层次…

    2025年4月1日 编程技术
    100
  • Photoshop将打造出非常奇幻的淡紫色光丝翅膀效果

    效果图是由非常多的光丝构成,不过这些光丝不是用钢笔勾出路径后描边路径得到的。是用更梦幻的水平光束变形得到的。多条叠加后的效果非常梦幻。  最终效果 1、在制作翅膀之前,我们需要先做一些准备工具,需要先做好一些平行的白色半透明线条,大致需要完…

    2025年4月1日 编程技术
    100
  • Photoshop打造简单的台球杆和台球方法

    台球的制作方法较为简单,仔细观察后会发现仅有两个面构成,一个是大球体,一个就是标签部分。制作的时候只需要分步做出选区,再加上渐变即可。表面部分可以适当加上高光。最终效果 1、新建一个1200 * 800像素的文档,选择渐变工具,颜色设置为蓝…

    2025年4月1日 编程技术
    100
  • Photoshop打造燃烧的红色蜡烛

    Photoshop制作燃烧的红色蜡烛效果,喜欢的朋友可以参考下。如果图片看不清楚,请右键下载到本地查看实际大小的图片即可   ‘         ‘ 

    2025年4月1日 编程技术
    100
  • Photoshop打造非常可爱的透明云彩壁纸

    效果图看似简单,制作起来还是非常讲究的。需要把云彩的透明效果和厚度都渲染出来,有点类似水晶效果的制作。云彩的形状可以按照自己的喜欢绘制。9、现在选择 内阴影 值按以下调整。 10、最后一层风格,我们将使用 阴影,但现实主义思想的阴影的是让一…

    2025年4月1日 编程技术
    100
  • Photoshop打造出一条漂亮如丝带的红色叠加光束

    单一的光束制作可能比较简单,不过几条或更多的光束叠加的效果制作就比较麻烦,尤其是叠加部分的制作比较复杂。因为叠加的时候光会明显加强,需要单独进行处理。  最终效果 1、新建一个1024 * 768像素的文档,背景填充黑色,新建一个图层,用套…

    2025年4月1日 编程技术
    100
  • Photoshop将利用滤镜及图层样式制作出逼真的金色硬币效果

    本教程重点是把普通的人像照片做成浮雕效果。用到的滤镜也较为简单,风格化中“浮雕效果”滤镜。这款滤镜可以快速把图片转为黑白浮雕图。有了浮雕效果,后期调整好颜色,再加上装饰等即可。最终效果 1、打人物素材,抠出人像放到木质背景素材上面,选择椭圆…

    2025年4月1日 编程技术
    100
  • Photoshop制作梦幻的彩色潮流圆环壁纸

    本教程的壁纸大致分为3个大的部分来完成。首先是背景部分的制作,用一些色块叠加成较为梦幻的效果。然后就是圆环的制作,需要做出多种颜色,然后再慢慢组合。最后就是一些装饰部分的制作,可以直接用相关的笔刷来完成。  最终效果 1、新建一个壁纸大小的…

    2025年4月1日 编程技术
    100

发表回复

登录后才能评论