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

go 如何动态连接多个数据库

  •  
  •   570956418 · 2021-04-15 15:40:11 +08:00 · 3205 次点击
    这是一个创建于 1328 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目背景:

    现在有 ABCDE 五个数据库,数据库里面的表结构都是一样的。
    

    需要实现的功能:

    我现在想写个计划任务去将这个几个数据库里面的 Users 表的数据聚合到另一个数据库 H 的 Users 表里面(还有其他表),我该怎么配置连接?(后期可能还会有一样结构的数据库 FG 等)
    

    尝试与疑问:

    我现在用的是 gorm,我配置了 AConn,BConn....等多个连接,但是这样写数据同步的时候不灵活,我不知道怎么使用变量代理数据库连接。我想用 for 循环来遍历查询数据进行同步,但是不知道怎么写?比如一开始建立的时候我想遍历 conn1,conn2...,但是我不知道怎么用动态的变量名去接受 gorm.open 返回的 db 资源
    

    备注:

    如果我的方案不好请忽略,麻烦点播下有什么好的方案去实现这个功能。
    

    望指教!!

    6 条回复    2022-01-26 17:25:11 +08:00
    yijihu
        1
    yijihu  
       2021-04-15 15:47:44 +08:00
    直接用 mycat 这类数据库中间件吧
    777777
        2
    777777  
       2021-04-15 17:07:13 +08:00
    用 vitess,Google 用 golang 实现的
    janxin
        3
    janxin  
       2021-04-15 17:36:48 +08:00
    mengdodo
        4
    mengdodo  
       2021-04-16 14:28:38 +08:00
    mark,最近我也也到了这个问题,同时保持多个数据库连接感觉很多余,可又不确定下一秒就会使用到这个数据库
    olddogs
        5
    olddogs  
       2022-01-26 16:05:12 +08:00
    我也遇到这个情况,请问找到解决方案了吗?》
    570956418
        6
    570956418  
    OP
       2022-01-26 17:25:11 +08:00
    没找到什么好办法办法,就是同时建立多个连接了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1204 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:20 · PVG 02:20 · LAX 10:20 · JFK 13:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.