feat:Extract global configuration

This commit is contained in:
zhangwenjian
2020-07-06 07:53:34 +08:00
parent a6970e9c67
commit bfbc5081ea
15 changed files with 155 additions and 207 deletions
+6 -65
View File
@@ -3,79 +3,20 @@ package config
import "github.com/spf13/viper"
type Database struct {
DbType string
SqLite *SqLite
Mysql *Mysql
PgSql *PgSql
}
type SqLite struct {
MasterConn string
DBName string
}
type Mysql struct {
MasterConn string
DBName string
}
type PgSql struct {
MasterConn string
DBName string
Driver string
Source string
DBName string
}
func InitDatabase(cfg *viper.Viper) *Database {
dbType := cfg.GetString("dbType")
db := &Database{
DbType: cfg.GetString("dbType"),
Driver: cfg.GetString("driver"),
Source: cfg.GetString("dbname"),
DBName: cfg.GetString("dbname"),
}
if dbType == "sqlite3" {
sqlit := cfg.Sub("sqlite")
if sqlit == nil {
panic("config not found settings.database.sqlite")
}
db.SqLite = InitSqlite(sqlit)
} else if dbType == "mysql" {
mysql := cfg.Sub("mysql")
if mysql == nil {
panic("config not found settings.database.mysql")
}
db.Mysql = InitMysql(mysql)
} else if dbType == "pgsql" {
pgsql := cfg.Sub("pgsql")
if pgsql == nil {
panic("config not found settings.database.pgsql")
}
db.PgSql = InitPgsql(pgsql)
} else {
panic("unknown dbtype")
}
return db
}
var DatabaseConfig = new(Database)
func InitSqlite(cfg *viper.Viper) *SqLite {
return &SqLite{
MasterConn: cfg.GetString("masterconn"),
DBName: cfg.GetString("dbname"),
}
}
func InitMysql(cfg *viper.Viper) *Mysql {
return &Mysql{
MasterConn: cfg.GetString("masterconn"),
DBName: cfg.GetString("dbname"),
}
}
func InitPgsql(cfg *viper.Viper) *PgSql {
return &PgSql{
MasterConn: cfg.GetString("masterconn"),
DBName: cfg.GetString("dbname"),
}
}