@@ -4,15 +4,17 @@ import (
44 "fmt"
55 "log/slog"
66 "mkBlog/config"
7+ "strings"
78 "time"
89
910 "gorm.io/driver/mysql"
1011 "gorm.io/driver/postgres"
12+ "gorm.io/driver/sqlite"
1113 "gorm.io/gorm"
1214)
1315
1416func getDSN () string {
15- switch config .Cfg .Database .Kind {
17+ switch strings . ToLower ( config .Cfg .Database .Kind ) {
1618 case "mysql" :
1719 return config .Cfg .Database .User + ":" + config .Cfg .Database .Password +
1820 "@tcp(" + config .Cfg .Database .Host + ":" + config .Cfg .Database .Port + ")/" +
@@ -24,12 +26,14 @@ func getDSN() string {
2426 " password=" + config .Cfg .Database .Password +
2527 " dbname=" + config .Cfg .Database .Name +
2628 " sslmode=disable TimeZone=UTC"
29+ case "sqlite3" :
30+ return config .Cfg .Database .Host
2731 }
2832 return ""
2933}
3034
3135func openDatabase (dsn string ) (* gorm.DB , error ) {
32- switch config .Cfg .Database .Kind {
36+ switch strings . ToLower ( config .Cfg .Database .Kind ) {
3337 case "mysql" :
3438 return gorm .Open (mysql .Open (dsn ), & gorm.Config {
3539 NowFunc : func () time.Time { return time .Now ().UTC () },
@@ -38,12 +42,16 @@ func openDatabase(dsn string) (*gorm.DB, error) {
3842 return gorm .Open (postgres .Open (dsn ), & gorm.Config {
3943 NowFunc : func () time.Time { return time .Now ().UTC () },
4044 })
45+ case "sqlite3" :
46+ return gorm .Open (sqlite .Open (dsn ), & gorm.Config {
47+ NowFunc : func () time.Time { return time .Now ().UTC () },
48+ })
4149 }
4250 return nil , fmt .Errorf ("unsupported database kind: %s" , config .Cfg .Database .Kind )
4351}
4452
4553func createFullTextIndex () {
46- switch config .Cfg .Database .Kind {
54+ switch strings . ToLower ( config .Cfg .Database .Kind ) {
4755 case "mysql" :
4856 db .Exec (createMySQLFullTextIndexSQL )
4957 case "postgres" :
@@ -54,5 +62,7 @@ func createFullTextIndex() {
5462 db .Exec (createPostgresChineseDictionarySQL )
5563 db .Exec (createPostgresDictionaryMappingSQL )
5664 db .Exec (createPostgresFullTextIndexSQL )
65+ case "sqlite3" :
66+ return
5767 }
5868}
0 commit comments