feat: use XORM EngineGroup instead of single Engine connection (#7212)
Resolves #7207
Add new configuration to make XORM work with a main and replicas database instances. The follow configuration parameters were added:
- `HOST_PRIMARY`
- `HOST_REPLICAS`
- `LOAD_BALANCE_POLICY`. Options:
- `"WeightRandom"` -> `xorm.WeightRandomPolicy`
- `"WeightRoundRobin` -> `WeightRoundRobinPolicy`
- `"LeastCon"` -> `LeastConnPolicy`
- `"RoundRobin"` -> `xorm.RoundRobinPolicy()`
- default: `xorm.RandomPolicy()`
- `LOAD_BALANCE_WEIGHTS`
Co-authored-by: pat-s <patrick.schratz@gmail.com@>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7212
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: pat-s <patrick.schratz@gmail.com>
Co-committed-by: pat-s <patrick.schratz@gmail.com>