snippet/sqlite/sqlite.go

64 lines
1003 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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...)
}