feat(database): 将数据库连接池从 NutsDB 迁移到 SQLite
- 修改 server/ws/example.go 中的数据库连接池引用,将 m.nutsPool 替换为 m.sqlitePool - 更新 go.mod 文件中的 Go 版本从 1.24.3 升级到 1.25.0 - 移除 nutsdb 依赖项 github.com/nutsdb/nutsdb v1.1.0 - 移除其他间接依赖包括 github.com/antlabs/stl、github.com/antlabs/timer、 github.com/bwmarrin/snowflake、github.com/cespare/xxhash/v2 等 - 添加 SQLite 相关依赖 github.com/glebarez/go-sqlite 和 github.com/glebarez/sqlite - 更新 golang.org/x 相关包版本,包括 exp、sync、sys、text 等模块 - 在 go.sum 中同步更新所有依赖项的校验和变化
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
|
||||
"git.magicany.cc/black1552/gf-common/log"
|
||||
"github.com/glebarez/sqlite"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/os/gfile"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/schema"
|
||||
)
|
||||
|
||||
var (
|
||||
Type gorm.Dialector
|
||||
Db *gorm.DB
|
||||
err error
|
||||
sqlDb *sql.DB
|
||||
dns = gfile.Join(gfile.Pwd(), "db", "database.db")
|
||||
)
|
||||
|
||||
func init() {
|
||||
if g.IsEmpty(dns) {
|
||||
log.Error("gormDns未配置", "请检查配置文件")
|
||||
return
|
||||
}
|
||||
sqliteInit()
|
||||
Db, err = gorm.Open(Type, &gorm.Config{
|
||||
SkipDefaultTransaction: true,
|
||||
// 命名策略:保持与模型一致,避免字段/表名转换问题
|
||||
NamingStrategy: schema.NamingStrategy{
|
||||
SingularTable: true, // 表名禁用复数形式(例如 User 对应 user 表,而非 users)
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
log.Error("数据库连接失败: ", err)
|
||||
return
|
||||
}
|
||||
sqlDb, err = Db.DB()
|
||||
if err != nil {
|
||||
log.Error("获取sqlDb失败", err)
|
||||
return
|
||||
}
|
||||
if err = sqlDb.Ping(); err != nil {
|
||||
log.Error("数据库未正常连接", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func sqliteInit() {
|
||||
if !gfile.Exists(dns) {
|
||||
_, err = gfile.Create(dns)
|
||||
if err != nil {
|
||||
log.Error("创建数据库文件失败: ", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
Type = sqlite.Open(fmt.Sprintf("%s?cache=shared&mode=rwc&_busy_timeout=10000&_fk=1&_journal=WAL&_sync=FULL", dns))
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
package db
|
||||
Reference in New Issue
Block a user