package db import ( "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" "gorm.io/gorm/schema" "time" log "gogs.baozhida.cn/zoie/OAuth-core/logger" "gogs.baozhida.cn/zoie/OAuth-core/pkg" mycasbin "gogs.baozhida.cn/zoie/OAuth-core/pkg/casbin" "gogs.baozhida.cn/zoie/OAuth-core/sdk" toolsConfig "gogs.baozhida.cn/zoie/OAuth-core/sdk/config" toolsDB "gogs.baozhida.cn/zoie/OAuth-core/tools/database" . "gogs.baozhida.cn/zoie/OAuth-core/tools/gorm/logger" ) var DB *gorm.DB // Setup 配置数据库 func Setup() { c := toolsConfig.DatabaseConfig 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: New( // logger.Config{ // SlowThreshold: time.Second, // Colorful: true, // LogLevel: logger.LogLevel( // log.DefaultLogger.Options().Level.LevelForGorm()), // }, // ), // DisableAutomaticPing: true, //}, mysql.Open) db, err := gorm.Open(mysql.Open(c.Source), &gorm.Config{ DisableForeignKeyConstraintWhenMigrating: true, NamingStrategy: schema.NamingStrategy{ SingularTable: true, }, Logger: New( logger.Config{ SlowThreshold: time.Second, Colorful: true, LogLevel: logger.LogLevel( log.DefaultLogger.Options().Level.LevelForGorm()), }, ), DisableAutomaticPing: true}) if err != nil { log.Fatal(pkg.Red("mysql connect error :"), err) } else { log.Info(pkg.Green("mysql connect success !")) } DB = db e := mycasbin.Setup(db) sdk.Runtime.SetDb(toolsConfig.ApplicationConfig.Host, db) sdk.Runtime.SetCasbin(toolsConfig.ApplicationConfig.Host, e) }