我想在 Revel + Gorm(或 Golang 中的任何其他 ORM)中设置数据库分片,如https://github.com/thiagopradi/octopus 。
我将在安全过滤器中获取数据库连接字符串(这是一个自定义过滤器,在 revel 的参数过滤器之后添加)。现在我需要在下一个名为db filter的自定义过滤器中切换 db 连接
并且还需要在 revel 应用程序启动时实现 db 连接池。
我想在 Revel + Gorm(或 Golang 中的任何其他 ORM)中设置数据库分片,如https://github.com/thiagopradi/octopus 。
我将在安全过滤器中获取数据库连接字符串(这是一个自定义过滤器,在 revel 的参数过滤器之后添加)。现在我需要在下一个名为db filter的自定义过滤器中切换 db 连接
并且还需要在 revel 应用程序启动时实现 db 连接池。
首先是在初始化时为您准备数据库连接(仅调用一次):
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
在您的 db 过滤器上,只需选择您希望模型使用的 db1、db2 或 db3。就这样。
Gorm 已经为您制作了游泳池,因此您无需照顾。