V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
Dcynsd
V2EX  ›  Go 编程语言

请教下 Golang 的 GORM 有什么方法能实现:每个租户连接各自的数据库?

  •  
  •   Dcynsd · 2023-09-27 18:53:47 +08:00 · 1595 次点击
    这是一个创建于 407 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题:目前可以实现的是,登录后,拿到各自的数据库连接地址,但不知道 GORM 怎样能动态切换链接

    11 条回复    2023-09-28 09:29:48 +08:00
    Nazz
        1
    Nazz  
       2023-09-27 18:56:53 +08:00
    存到 sync.Map 里
    dobelee
        2
    dobelee  
       2023-09-27 18:59:21 +08:00
    这和 gorm 有什么关系。按需建多条链接就行。
    newshbb
        3
    newshbb  
       2023-09-27 19:19:18 +08:00
    好奇租户规模?如果几万,几十万租户,还不疯了
    willchen
        4
    willchen  
       2023-09-27 19:24:33 +08:00
    存到 sync.Map 里,实现个 getDB 方法
    Dcynsd
        5
    Dcynsd  
    OP
       2023-09-27 20:37:28 +08:00
    @Nazz
    @willchen 感谢,我去试一下
    Dcynsd
        6
    Dcynsd  
    OP
       2023-09-27 20:40:36 +08:00
    @newshbb 没这么多,只是按这个方法尝试一下
    Dcynsd
        7
    Dcynsd  
    OP
       2023-09-27 20:40:52 +08:00
    @dobelee 好的,我去试试
    mylifcc
        8
    mylifcc  
       2023-09-27 22:19:09 +08:00
    租户是什么呀
    ixixi
        9
    ixixi  
       2023-09-28 01:20:19 +08:00
    比较好奇 你系统更新怎么升级 表结构
    Dcynsd
        10
    Dcynsd  
    OP
       2023-09-28 08:53:24 +08:00
    @ixixi 我这个数据量不大,表结构是用过迁移文件管理的,每个租户对应一个数据库,循环租客执行迁移就可以了
    bv
        11
    bv  
       2023-09-28 09:29:48 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1363 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:37 · PVG 01:37 · LAX 09:37 · JFK 12:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.