在 UI 中,您可以在下拉列表中选择不同的选项,这些选项与不同数据库中保存的数据相关。我已经为数据创建了模型,并且由于数据库之间的表模式是相同的,我想根据用户选择的选项在数据库之间简单地切换。这在 GORM 2.0 中如何实现?我宁愿避免在查询中指定“database.tableName”,因为我经常使用db.Model(&model).Where...图案。我想出了一种方法,但我很想看看在 gorm.DB 对象中是否有一种处理方法(或者更优雅!)。当前解决方案:在存储库中,在执行任何数据库操作之前,请使用以下内容:r.db.Exec("use " + utils.GetDB())并使用 API 中间件获取对下拉列表的任何更改并设置与所需数据库相关的全局变量。提前谢谢了。
1 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
在没有其他答案的情况下,这是我决定使用的解决方案的指南:
var db map[string]*gorm.DB
db = make(map[string]*gorm.DB)
db["db1"], err = gorm.Open(mysql.Open(config.DbURL()), &gorm.Config{})
db["db2"], err = gorm.Open(mysql.Open(config.DbURL()), &gorm.Config{})
db["db3"], err = gorm.Open(mysql.Open(config.DbURL()), &gorm.Config{})
然后在需要时有一个函数来返回所需的数据库名称,返回您希望使用的实例。
db[dbname].Table("table1").Select....
- 1 回答
- 0 关注
- 263 浏览
添加回答
举报
0/150
提交
取消