| | |
| | | package sqlitex |
| | | |
| | | import ( |
| | | "go.uber.org/zap" |
| | | "gorm.io/driver/sqlite" |
| | | "gorm.io/gorm" |
| | | "gorm.io/gorm/logger" |
| | | "gorm.io/gorm/schema" |
| | | "moul.io/zapgorm2" |
| | | "github.com/jinzhu/gorm" |
| | | _ "github.com/jinzhu/gorm/dialects/sqlite" |
| | | "time" |
| | | ) |
| | | |
| | |
| | | |
| | | var openDb *gorm.DB |
| | | |
| | | func Init(conf *Conf, log *zap.Logger) error { |
| | | gConfig := &gorm.Config{ |
| | | PrepareStmt: true, |
| | | NamingStrategy: schema.NamingStrategy{ |
| | | TablePrefix: "", |
| | | SingularTable: true, |
| | | }, |
| | | DisableForeignKeyConstraintWhenMigrating: true, |
| | | } |
| | | dbLogger := zapgorm2.New(log).LogMode(logger.Info) |
| | | if !conf.LogMode { |
| | | dbLogger = dbLogger.LogMode(logger.Silent) |
| | | } |
| | | gConfig.Logger = dbLogger |
| | | db, err := gorm.Open(sqlite.Open(conf.Dsn), gConfig) |
| | | func Init(conf *Conf) error { |
| | | db, err := gorm.Open("sqlite3", conf.Dsn) |
| | | if err != nil { |
| | | return err |
| | | } |
| | | sqlDb, err := db.DB() |
| | | if err != nil { |
| | | return err |
| | | } |
| | | sqlDb := db.DB() |
| | | sqlDb.SetMaxIdleConns(int(conf.MaxIdleCon)) |
| | | sqlDb.SetMaxOpenConns(int(conf.MaxOpenCon)) |
| | | sqlDb.SetConnMaxLifetime(time.Duration(conf.ConnMaxLifeTimeSecond) * time.Second) |
| | | sqlDb.SetConnMaxIdleTime(time.Duration(conf.ConnMaxIdleTimeSecond) * time.Second) |
| | | openDb = db |
| | | db.LogMode(true) |
| | | return nil |
| | | } |
| | | |