mirror of
https://github.com/DullJZ/s3-balance.git
synced 2026-09-08 17:36:39 +08:00
Use modernc.org/sqlite to support CGO_ENABLED=0
This commit is contained in:
@@ -15,6 +15,7 @@ import (
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
_ "modernc.org/sqlite"
|
||||
)
|
||||
|
||||
// DB 全局数据库连接
|
||||
@@ -79,7 +80,7 @@ func Initialize(cfg *config.DatabaseConfig) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// connectSQLite 连接SQLite数据库
|
||||
// connectSQLite 连接SQLite数据库(使用modernc.org/sqlite,支持非CGO)
|
||||
func connectSQLite(dsn string, gormConfig *gorm.Config) (*gorm.DB, error) {
|
||||
// 创建数据目录(如果不存在)
|
||||
dir := filepath.Dir(dsn)
|
||||
@@ -94,10 +95,14 @@ func connectSQLite(dsn string, gormConfig *gorm.Config) (*gorm.DB, error) {
|
||||
dsn = fmt.Sprintf("%s?_journal_mode=WAL&_timeout=5000&_synchronous=NORMAL&_cache_size=10000", dsn)
|
||||
}
|
||||
|
||||
return gorm.Open(sqlite.Open(dsn), gormConfig)
|
||||
}
|
||||
// 使用modernc.org/sqlite驱动(纯Go实现,无需CGO)
|
||||
dialector := sqlite.Dialector{
|
||||
DriverName: "sqlite",
|
||||
DSN: dsn,
|
||||
}
|
||||
|
||||
// connectMySQL 连接MySQL数据库
|
||||
return gorm.Open(dialector, gormConfig)
|
||||
} // connectMySQL 连接MySQL数据库
|
||||
func connectMySQL(dsn string, gormConfig *gorm.Config) (*gorm.DB, error) {
|
||||
// MySQL DSN示例: user:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local
|
||||
|
||||
|
||||
Reference in New Issue
Block a user