package sqlite import ( "errors" "os" "path/filepath" "gorm.io/driver/sqlite" "gorm.io/gorm" "gorm.io/gorm/logger" ) var ( _conf *Config _db *gorm.DB ) //Init mysql初始化 func Init(conf *Config) error { if conf != nil { _conf = conf } return nil } //New 创建实例 func New() (*gorm.DB, error) { if _db != nil { return _db, nil } if _conf == nil { return nil, errors.New("组件未初始化,请执行Init!") } dir, _ := filepath.Split(_conf.DBFile) if dir != "" { _, err := os.Stat(dir) if os.IsNotExist(err) { if err := os.MkdirAll(dir, 0755); err != nil { return nil, err } } } var err error _db, err = gorm.Open(sqlite.Open(_conf.DBFile), &gorm.Config{ SkipDefaultTransaction: true, Logger: logger.Default.LogMode(logger.Silent), }) if err != nil { return nil, err } return _db, nil } func Migrate(dest ...interface{}) error { db, err := New() if err != nil { return err } return db.AutoMigrate(dest...) }