go - 如何切换数据库连接并将其共享到 Golang 中的模型? (Revel + Gorm)

标签 go revel go-gorm

我想像 https://github.com/thiagopradi/octopus 这样设置数据库分片在 Revel + Gorm(或 Golang 中的任何其他 ORM)中。

我将在 security filter 中获取数据库连接字符串(这是一个自定义过滤器,添加在 revel 的参数过滤器之后)。现在我需要在下一个名为 db filter

的自定义过滤器中切换数据库连接

并且还需要在 revel 应用程序启动时实现数据库连接池。

最佳答案

首先是在初始化时准备好数据库连接(只调用一次):

db1, err := gorm.Open(dbdriver, dboption) //your main server
db2, err := gorm.Open(dbdriver, dboption) //your sharding 1
db3, err := gorm.Open(dbdriver, dboption) //your sharding 2

在您的数据库过滤器上,只需选择您希望模型使用的 db1、db2 或 db3。就这些。

Gorm 已经为你制作了游泳池,所以你不需要照顾。

关于go - 如何切换数据库连接并将其共享到 Golang 中的模型? (Revel + Gorm),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37404483/

相关文章:

go - 是否可以使用 dgo 检索当前模式

debugging - 如何在 goland 中调试 revel 应用程序?

postgresql - Gorm Jsonb 类型存储为 bytea

postgresql - gorm 不生成字符串列

database - Gorm协会多对多

具有浮点值的 Golang 查询无法正常工作

c# - 如何解码包含UTF-8字节顺序标记(BOM)的JSON字符串?

elasticsearch - 如何在 Golang 中共享服务连接

mongodb - 如何推迟 mgo session ,直到它完全流式传输到客户端?

go - revel中如何获取当前文件的位置