From 41443dccc0d87bece34852a5baaf755190834249 Mon Sep 17 00:00:00 2001 From: "meilin.huang" <954537473@qq.com> Date: Tue, 10 Oct 2023 23:21:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81sqlite=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/config.yml.example | 4 +++ server/go.mod | 2 ++ server/mayfly-go.sqlite | Bin 0 -> 180224 bytes server/pkg/config/config.go | 7 +++++ server/pkg/config/sqlite.go | 22 +++++++++++++++ server/pkg/starter/gorm.go | 53 +++++++++++++++++++++++++----------- 6 files changed, 72 insertions(+), 16 deletions(-) create mode 100644 server/mayfly-go.sqlite create mode 100644 server/pkg/config/sqlite.go diff --git a/server/config.yml.example b/server/config.yml.example index 88106c0b..14521f0a 100644 --- a/server/config.yml.example +++ b/server/config.yml.example @@ -17,6 +17,7 @@ jwt: # 资源密码aes加密key aes: key: 1111111111111111 +# 若存在mysql配置,优先使用mysql mysql: # 自动升级数据库 auto-migration: false @@ -26,6 +27,9 @@ mysql: db-name: mayfly-go config: charset=utf8&loc=Local&parseTime=true max-idle-conns: 5 +sqlite: + path: ./mayfly-go.sqlite + max-idle-conns: 5 # 若同时部署多台机器,则需要配置redis信息用于缓存权限码、验证码、公私钥等 # redis: # host: localhost diff --git a/server/go.mod b/server/go.mod index 5a07a412..348292e5 100644 --- a/server/go.mod +++ b/server/go.mod @@ -28,6 +28,7 @@ require ( gopkg.in/yaml.v3 v3.0.1 // gorm gorm.io/driver/mysql v1.5.1 + gorm.io/driver/sqlite v1.5.4 gorm.io/gorm v1.25.4 ) @@ -54,6 +55,7 @@ require ( github.com/kr/pretty v0.3.0 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-sqlite3 v1.14.17 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect diff --git a/server/mayfly-go.sqlite b/server/mayfly-go.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..0d09b2e38db969e2251fe9fe94c20763dbc5da80 GIT binary patch literal 180224 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 literal 0 HcmV?d00001 diff --git a/server/pkg/config/config.go b/server/pkg/config/config.go index 809b76f0..0db64c79 100644 --- a/server/pkg/config/config.go +++ b/server/pkg/config/config.go @@ -52,6 +52,7 @@ type Config struct { Jwt Jwt `yaml:"jwt"` Aes Aes `yaml:"aes"` Mysql Mysql `yaml:"mysql"` + Sqlite Sqlite `yaml:"sqlite"` Redis Redis `yaml:"redis"` Log Log `yaml:"log"` } @@ -70,6 +71,7 @@ func (c *Config) IfBlankDefaultValue() { c.Server.Default() c.Jwt.Default() c.Mysql.Default() + c.Sqlite.Default() } // 配置文件内容校验 @@ -109,6 +111,11 @@ func (c *Config) ReplaceOsEnv() { c.Mysql.Password = dbPwd } + sqlitePath := os.Getenv("MAYFLY_SQLITE_PATH") + if sqlitePath != "" { + c.Sqlite.Path = sqlitePath + } + aesKey := os.Getenv("MAYFLY_AES_KEY") if aesKey != "" { c.Aes.Key = aesKey diff --git a/server/pkg/config/sqlite.go b/server/pkg/config/sqlite.go new file mode 100644 index 00000000..cfaee761 --- /dev/null +++ b/server/pkg/config/sqlite.go @@ -0,0 +1,22 @@ +package config + +import "mayfly-go/pkg/logx" + +type Sqlite struct { + Path string `mapstructure:"path" json:"path" yaml:"path"` + MaxIdleConns int `mapstructure:"max-idle-conns" json:"maxIdleConns" yaml:"max-idle-conns"` + MaxOpenConns int `mapstructure:"max-open-conns" json:"maxOpenConns" yaml:"max-open-conns"` +} + +func (m *Sqlite) Default() { + if m.Path == "" { + m.Path = "./mayfly-go.sqlite" + logx.Warnf("未配置sqlite.path, 默认值: %s", m.Path) + } + if m.MaxIdleConns == 0 { + m.MaxIdleConns = 5 + } + if m.MaxOpenConns == 0 { + m.MaxOpenConns = m.MaxIdleConns + } +} diff --git a/server/pkg/starter/gorm.go b/server/pkg/starter/gorm.go index 99e1cc31..dde763ac 100644 --- a/server/pkg/starter/gorm.go +++ b/server/pkg/starter/gorm.go @@ -8,21 +8,27 @@ import ( "time" "gorm.io/driver/mysql" + "gorm.io/driver/sqlite" "gorm.io/gorm" "gorm.io/gorm/logger" "gorm.io/gorm/schema" ) func initDb() { - global.Db = gormMysql() + global.Db = initGormDb() } -func gormMysql() *gorm.DB { +func initGormDb() *gorm.DB { m := config.Conf.Mysql - if m.Dbname == "" { - logx.Panic("未找到数据库配置信息") - return nil + // 存在msyql数据库名,则优先使用mysql + if m.Dbname != "" { + return initMysql(m) } + + return initSqlite(config.Conf.Sqlite) +} + +func initMysql(m config.Mysql) *gorm.DB { logx.Infof("连接mysql [%s]", m.Host) mysqlConfig := mysql.Config{ DSN: m.Dsn(), // DSN data source name @@ -33,6 +39,31 @@ func gormMysql() *gorm.DB { SkipInitializeWithVersion: false, // 根据版本自动配置 } + if db, err := gorm.Open(mysql.New(mysqlConfig), getGormConfig()); err != nil { + logx.Panicf("连接mysql失败! [%s]", err.Error()) + return nil + } else { + sqlDB, _ := db.DB() + sqlDB.SetMaxIdleConns(m.MaxIdleConns) + sqlDB.SetMaxOpenConns(m.MaxOpenConns) + return db + } +} + +func initSqlite(sc config.Sqlite) *gorm.DB { + logx.Infof("连接sqlite [%s]", sc.Path) + if db, err := gorm.Open(sqlite.Open(sc.Path), getGormConfig()); err != nil { + logx.Panicf("连接sqlite失败! [%s]", err.Error()) + return nil + } else { + sqlDB, _ := db.DB() + sqlDB.SetMaxIdleConns(sc.MaxIdleConns) + sqlDB.SetMaxOpenConns(sc.MaxOpenConns) + return db + } +} + +func getGormConfig() *gorm.Config { sqlLogLevel := logger.Error logConf := logx.GetConfig() // 如果为配置文件中配置的系统日志级别为debug,则打印gorm执行的sql信息 @@ -50,18 +81,8 @@ func gormMysql() *gorm.DB { }, ) - ormConfig := &gorm.Config{NamingStrategy: schema.NamingStrategy{ + return &gorm.Config{NamingStrategy: schema.NamingStrategy{ TablePrefix: "t_", SingularTable: true, }, Logger: gormLogger} - - if db, err := gorm.Open(mysql.New(mysqlConfig), ormConfig); err != nil { - logx.Panicf("连接mysql失败! [%s]", err.Error()) - return nil - } else { - sqlDB, _ := db.DB() - sqlDB.SetMaxIdleConns(m.MaxIdleConns) - sqlDB.SetMaxOpenConns(m.MaxOpenConns) - return db - } }