| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package database
- import (
- "IotAdmin/common/global"
- log "IotAdmin/core/logger"
- "IotAdmin/core/sdk"
- toolsCfg "IotAdmin/core/sdk/config"
- "IotAdmin/core/sdk/pkg"
- mycasbin "IotAdmin/core/sdk/pkg/casbin"
- toolsDB "IotAdmin/core/tools/database"
- toolsLogger "IotAdmin/core/tools/gorm/logger"
- "time"
- "gorm.io/gorm"
- "gorm.io/gorm/logger"
- "gorm.io/gorm/schema"
- )
- func Setup() {
- for k := range toolsCfg.DatabasesConfig {
- db := toolsCfg.DatabasesConfig[k]
- setupDatabase(k, db)
- }
- }
- func setupDatabase(host string, c *toolsCfg.Database) {
- if global.Driver == "" {
- global.Driver = c.Driver
- }
- log.Infof("%s => %s", host, pkg.Green(c.Source))
- registers := make([]toolsDB.ResolverConfigure, len(c.Registers))
- for i := range c.Registers {
- registers[i] = toolsDB.NewResolverConfigure(
- c.Registers[i].Sources,
- c.Registers[i].Replicas,
- c.Registers[i].Policy,
- c.Registers[i].Tables)
- }
- resolverConfig := toolsDB.NewConfigure(c.Source, c.MaxIdleConns, c.MaxOpenConns, c.ConnMaxIdleTime, c.ConnMaxLifeTime, registers)
- db, err := resolverConfig.Init(&gorm.Config{
- NamingStrategy: schema.NamingStrategy{
- SingularTable: true,
- },
- Logger: toolsLogger.New(
- logger.Config{
- SlowThreshold: time.Second,
- Colorful: true,
- LogLevel: logger.LogLevel(
- log.DefaultLogger.Options().Level.LevelForGorm()),
- },
- ),
- }, opens[c.Driver])
- if err != nil {
- log.Fatal(pkg.Red(c.Driver+" 连接失败 :"), err)
- } else {
- log.Info(pkg.Green(c.Driver + " 连接成功!"))
- }
- e := mycasbin.Setup(db, "")
- sdk.Runtime.SetDb(host, db)
- sdk.Runtime.SetCasbin(host, e)
- }
|