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/driver/sqlite"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"gorm.io/gorm/logger"
|
"gorm.io/gorm/logger"
|
||||||
|
_ "modernc.org/sqlite"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DB 全局数据库连接
|
// DB 全局数据库连接
|
||||||
@@ -79,7 +80,7 @@ func Initialize(cfg *config.DatabaseConfig) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// connectSQLite 连接SQLite数据库
|
// connectSQLite 连接SQLite数据库(使用modernc.org/sqlite,支持非CGO)
|
||||||
func connectSQLite(dsn string, gormConfig *gorm.Config) (*gorm.DB, error) {
|
func connectSQLite(dsn string, gormConfig *gorm.Config) (*gorm.DB, error) {
|
||||||
// 创建数据目录(如果不存在)
|
// 创建数据目录(如果不存在)
|
||||||
dir := filepath.Dir(dsn)
|
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)
|
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) {
|
func connectMySQL(dsn string, gormConfig *gorm.Config) (*gorm.DB, error) {
|
||||||
// MySQL DSN示例: user:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local
|
// MySQL DSN示例: user:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user