1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package internal
- import (
- "gorm.io/gorm/schema"
- "log"
- "os"
- "time"
- "gorm.io/gorm"
- "gorm.io/gorm/logger"
- "server/global"
- )
- 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 := logger.New(log.New(os.Stdout, "\r\n", log.LstdFlags), logger.Config{
- SlowThreshold: 200 * time.Millisecond,
- LogLevel: logger.Warn,
- Colorful: true,
- })
- 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
- }
|