package internal import ( "github.com/flipped-aurora/gin-vue-admin/server/global" "gorm.io/gorm" "gorm.io/gorm/logger" "gorm.io/gorm/schema" ) type DBBASE interface { GetLogMode() string } var Gorm = new(_gorm) type _gorm struct{} // Config gorm 自定义配置 // Author [SliverHorn](https://github.com/SliverHorn) func (g *_gorm) Config(prefix string, singular bool) *gorm.Config { config := &gorm.Config{ NamingStrategy: schema.NamingStrategy{ TablePrefix: prefix, SingularTable: singular, }, DisableForeignKeyConstraintWhenMigrating: true, } _default := NewZapLogger() var logMode DBBASE switch global.GVA_CONFIG.System.DbType { case "mysql": logMode = &global.GVA_CONFIG.Mysql case "pgsql": logMode = &global.GVA_CONFIG.Pgsql case "oracle": logMode = &global.GVA_CONFIG.Oracle default: logMode = &global.GVA_CONFIG.Mysql } switch logMode.GetLogMode() { case "silent", "Silent": config.Logger = _default.LogMode(logger.Silent) case "error", "Error": config.Logger = _default.LogMode(logger.Error) case "warn", "Warn": config.Logger = _default.LogMode(logger.Warn) case "info", "Info": config.Logger = _default.LogMode(logger.Info) default: config.Logger = _default.LogMode(logger.Info) } return config }