@@ -7,14 +7,38 @@ import (
7
7
"github.com/eryajf/xirang/model"
8
8
9
9
"gorm.io/driver/mysql"
10
+ "gorm.io/driver/sqlite"
10
11
"gorm.io/gorm"
11
12
)
12
13
13
- // 全局mysql数据库变量
14
+ // 全局数据库对象
14
15
var DB * gorm.DB
15
16
16
- // 初始化mysql数据库
17
- func InitMysql () {
17
+ // 初始化数据库
18
+ func InitDB () {
19
+ if config .Conf .Database .Driver == "mysql" {
20
+ initMysql ()
21
+ } else if config .Conf .Database .Driver == "sqlite3" {
22
+ initSqlite3 ()
23
+ }
24
+ }
25
+
26
+ func initSqlite3 () {
27
+ db , err := gorm .Open (sqlite .Open (config .Conf .Database .Source + "?charset=utf8mb4&parseTime=True&loc=Local" ), & gorm.Config {
28
+ // 禁用外键(指定外键时不会在mysql创建真实的外键约束)
29
+ DisableForeignKeyConstraintWhenMigrating : true ,
30
+ })
31
+ if err != nil {
32
+ Log .Panicf ("failed to connect sqlite3: %v" , err )
33
+ }
34
+
35
+ DB = db
36
+ // 自动迁移表结构
37
+ dbAutoMigrate ()
38
+ Log .Infof ("初始化 sqlite3 数据库完成!" )
39
+ }
40
+
41
+ func initMysql () {
18
42
dsn := fmt .Sprintf ("%s:%s@tcp(%s:%d)/%s?charset=%s&collation=%s&%s" ,
19
43
config .Conf .Mysql .Username ,
20
44
config .Conf .Mysql .Password ,
@@ -40,10 +64,6 @@ func InitMysql() {
40
64
db , err := gorm .Open (mysql .Open (dsn ), & gorm.Config {
41
65
// 禁用外键(指定外键时不会在mysql创建真实的外键约束)
42
66
DisableForeignKeyConstraintWhenMigrating : true ,
43
- //// 指定表前缀
44
- //NamingStrategy: schema.NamingStrategy{
45
- // TablePrefix: config.Conf.Mysql.TablePrefix + "_",
46
- //},
47
67
})
48
68
if err != nil {
49
69
Log .Panicf ("初始化mysql数据库异常: %v" , err )
0 commit comments