55 "log/slog"
66 "mkBlog/config"
77 "mkBlog/models"
8+ "path"
89 "strings"
910 "time"
1011
@@ -16,34 +17,34 @@ import (
1617
1718func getDSN () string {
1819 switch strings .ToLower (config .Cfg .Database .Kind ) {
19- case "mysql" :
20+ case models . MySQL :
2021 return config .Cfg .Database .User + ":" + config .Cfg .Database .Password +
2122 "@tcp(" + config .Cfg .Database .Host + ":" + config .Cfg .Database .Port + ")/" +
2223 config .Cfg .Database .Name + "?charset=utf8mb4&parseTime=True&loc=UTC"
23- case "postgres" :
24+ case models . Postgres :
2425 return "host=" + config .Cfg .Database .Host +
2526 " port=" + config .Cfg .Database .Port +
2627 " user=" + config .Cfg .Database .User +
2728 " password=" + config .Cfg .Database .Password +
2829 " dbname=" + config .Cfg .Database .Name +
2930 " sslmode=disable TimeZone=UTC"
30- case "sqlite3" :
31- return config .Cfg .Database .Host
31+ case models . SQLite3 :
32+ return path . Join ( models . Default_Data_Path , config .Cfg .Database .Host )
3233 }
33- return models .Default_Data_File_Path
34+ return path . Join ( models .Default_Data_Path , models . Default_Data_File_Path )
3435}
3536
3637func openDatabase (dsn string ) (* gorm.DB , error ) {
3738 switch strings .ToLower (config .Cfg .Database .Kind ) {
38- case "mysql" :
39+ case models . MySQL :
3940 return gorm .Open (mysql .Open (dsn ), & gorm.Config {
4041 NowFunc : func () time.Time { return time .Now ().UTC () },
4142 })
42- case "postgres" :
43+ case models . Postgres :
4344 return gorm .Open (postgres .Open (dsn ), & gorm.Config {
4445 NowFunc : func () time.Time { return time .Now ().UTC () },
4546 })
46- case "sqlite3" :
47+ case models . SQLite3 :
4748 return gorm .Open (sqlite .Open (dsn ), & gorm.Config {
4849 NowFunc : func () time.Time { return time .Now ().UTC () },
4950 })
@@ -53,17 +54,17 @@ func openDatabase(dsn string) (*gorm.DB, error) {
5354
5455func createFullTextIndex () {
5556 switch strings .ToLower (config .Cfg .Database .Kind ) {
56- case "mysql" :
57+ case models . MySQL :
5758 db .Exec (createMySQLFullTextIndexSQL )
58- case "postgres" :
59+ case models . Postgres :
5960 if res := db .Exec (usePostgresExtensionSQL ); res .Error != nil {
6061 slog .Error ("failed to start zhparser extension. please ensure it is installed" , "error" , res .Error )
6162 }
6263 slog .Info ("start zhparser extension successfully" )
6364 db .Exec (createPostgresChineseDictionarySQL )
6465 db .Exec (createPostgresDictionaryMappingSQL )
6566 db .Exec (createPostgresFullTextIndexSQL )
66- case "sqlite3" :
67+ case models . SQLite3 :
6768 return
6869 }
6970}
0 commit comments