Как я могу переключить подключение к базе данных и поделиться им с моделью в Golang? (Revel + Gorm)

Я хочу настроить сегментирование базы данных, как https://github.com/thiagopradi/octopus в Revel + Gorm (или любой другой ORM в Golang).

Я получу строку подключения db в фильтре безопасности (который был пользовательским фильтром, добавленным после фильтра param revel). Теперь мне нужно переключить соединение db в следующем пользовательском фильтре под названием db filter

А также необходимо реализовать пул подключения к БД в revel запуска приложения.

1 ответ

  1. Во-первых, это подготовить вам подключение к БД на init (только один вызов) :

    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 уже сделать бассейн для вас, так что вам не нужно заботиться.