【发布时间】:2021-02-18 05:23:19
【问题描述】:
我有一个要求,我的应用程序可以与不同的 数据库。我如何管理 gorm 中的连接。有没有 方式 gorm 支持多个数据库的连接管理。或者我 需要创建包含所有数据库连接的映射。
if val, ok := selector.issure_db[issuer]; ok {
return val , nil;
} else {
var dbo *db.DB;
selector.mu.Lock()
dbo, err := db.NewDb(Config)
if err != nil {
boot.Logger(ctx).Fatal(err.Error())
}
selector.issure_db[issuer] = dbo;
selector.mu.Unlock()
return repo ,nil;
}
有没有更好的方法来做到这一点?
【问题讨论】:
-
在引导时创建所有数据库怎么样?
-
我的数据库可能会根据客户而增长。
-
你应该使用工厂函数来获取数据库,它会有互斥锁和其他东西。
-
gorm有工厂支持吗?
-
我不知道您可以像使用选择器映射一样构建一个。
标签: go go-gorm golang-migrate