feat(database): 集成 SQLite 数据库并优化配置

- 替换 SQLite 驱动为 glebarez/sqlite 并移除旧驱动
- 在数据库连接字符串中添加 WAL 模式和外键支持参数
- 配置 GORM 禁用默认事务和复数表名策略
- 更新 go.mod 和 go.sum 中的相关依赖版本
- 添加 SQLite 相关的间接依赖包
This commit is contained in:
2026-02-03 14:22:49 +08:00
parent 8dde22e47c
commit 931b539b61
4 changed files with 69 additions and 17 deletions
+10 -3
View File
@@ -5,11 +5,12 @@ import (
"git.magicany.cc/black1552/gin-base/config"
"git.magicany.cc/black1552/gin-base/log"
"github.com/glebarez/sqlite"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gfile"
"gorm.io/driver/mysql"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/schema"
)
var (
@@ -17,7 +18,7 @@ var (
Db *gorm.DB
err error
sqlDb *sql.DB
dns = config.GetConfigValue("database.dns", gfile.Join(gfile.Pwd(), "db", "database.db"))
dns = config.GetConfigValue("database.dns", gfile.Join(gfile.Pwd(), "db", "database.db?_fk=1&_journal=WAL&_sync=FULL"))
)
func init() {
@@ -33,7 +34,13 @@ func init() {
log.Info("使用sqlite数据库")
sqliteInit()
}
Db, err = gorm.Open(Type, &gorm.Config{})
Db, err = gorm.Open(Type, &gorm.Config{
SkipDefaultTransaction: true,
// 命名策略:保持与模型一致,避免字段/表名转换问题
NamingStrategy: schema.NamingStrategy{
SingularTable: true, // 表名禁用复数形式(例如 User 对应 user 表,而非 users)
},
})
if err != nil {
log.Error("数据库连接失败: ", err)
return