Skip to content

g.DB(): g.DB()缓存未更新 #4568

@ZDragonX

Description

@ZDragonX

Go version

1.24.7

GoFrame version

2.9.0

Can this bug be reproduced with the latest release?

Option Yes

What did you do?

背景:db从sqlite连接迁移到mysql,不采用配置文件读取数据库信息,会导致明文信息泄露
问题:
gf框架有g.DB()和gdb.Instance()两种创建DB实例的方法,但只对外提供gdb.SetConfigGroup方法进行切换db配置,而这只影响gdb.Instance()的缓存,不会影响g.DB()的缓存。
故使用g.DB()还会得到sqlite的实例。
代码:
https://go.dev/play/p/8NaL-ZnnwSD

What did you see happen?

gf框架有g.DB()和gdb.Instance()两种创建DB实例的方法,但只对外提供gdb.SetConfigGroup方法进行切换db配置,而这只影响gdb.Instance()的缓存,不会影响g.DB()的缓存。
故使用g.DB()还会得到sqlite的实例。
代码:
https://go.dev/play/p/8NaL-ZnnwSD

What did you expect to see?

gdb.SetConfigGroup修改后,g.DB()和gdb.Instance()都应该加载最新的配置。
g.DB()的缓存和gdb的缓存进行统一,且可以通过gdb.SetConfigGroup进行配置覆盖,实现真正的热加载db。
或者提供g.DB()的缓存更新的方法。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIt is confirmed a bug, but don't worry, we'll handle it.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions