@ -34,36 +34,47 @@ func Init() error {
confDBType = "mysql"
confDBType = "mysql"
}
}
switch confDBType {
// A full connection string overrides component fields - required for
case "UNSET" , "sqlite" :
// postgres unix sockets ("host=/var/run/postgresql dbname=..."), which
// 未指定数据库或者明确指定为 sqlite 时,使用 SQLite 数据库
// the component fields cannot express.
db , err = gorm . Open ( "sqlite3" , util . RelativePath ( conf . DatabaseConfig . DBFile ) )
if conf . DatabaseConfig . DatabaseURL != "" {
case "postgres" :
dialect := confDBType
db , err = gorm . Open ( confDBType , fmt . Sprintf ( "host=%s user=%s password=%s dbname=%s port=%d sslmode=disable" ,
if dialect == "UNSET" || dialect == "sqlite" {
conf . DatabaseConfig . Host ,
dialect = "sqlite3"
conf . DatabaseConfig . User ,
}
conf . DatabaseConfig . Password ,
db , err = gorm . Open ( dialect , conf . DatabaseConfig . DatabaseURL )
conf . DatabaseConfig . Name ,
} else {
conf . DatabaseConfig . Port ) )
switch confDBType {
case "mysql" , "mssql" :
case "UNSET" , "sqlite" :
var host string
// 未指定数据库或者明确指定为 sqlite 时,使用 SQLite 数据库
if conf . DatabaseConfig . UnixSocket {
db , err = gorm . Open ( "sqlite3" , util . RelativePath ( conf . DatabaseConfig . DBFile ) )
host = fmt . Sprintf ( "unix(%s)" ,
case "postgres" :
conf . DatabaseConfig . Host )
db , err = gorm . Open ( confDBType , fmt . Sprintf ( "host=%s user=%s password=%s dbname=%s port=%d sslmode=disable" ,
} else {
host = fmt . Sprintf ( "(%s:%d)" ,
conf . DatabaseConfig . Host ,
conf . DatabaseConfig . Host ,
conf . DatabaseConfig . Port )
conf . DatabaseConfig . User ,
conf . DatabaseConfig . Password ,
conf . DatabaseConfig . Name ,
conf . DatabaseConfig . Port ) )
case "mysql" , "mssql" :
var host string
if conf . DatabaseConfig . UnixSocket {
host = fmt . Sprintf ( "unix(%s)" ,
conf . DatabaseConfig . Host )
} else {
host = fmt . Sprintf ( "(%s:%d)" ,
conf . DatabaseConfig . Host ,
conf . DatabaseConfig . Port )
}
db , err = gorm . Open ( confDBType , fmt . Sprintf ( "%s:%s@%s/%s?charset=%s&parseTime=True&loc=Local" ,
conf . DatabaseConfig . User ,
conf . DatabaseConfig . Password ,
host ,
conf . DatabaseConfig . Name ,
conf . DatabaseConfig . Charset ) )
default :
return fmt . Errorf ( "unsupported database type %q" , confDBType )
}
}
db , err = gorm . Open ( confDBType , fmt . Sprintf ( "%s:%s@%s/%s?charset=%s&parseTime=True&loc=Local" ,
conf . DatabaseConfig . User ,
conf . DatabaseConfig . Password ,
host ,
conf . DatabaseConfig . Name ,
conf . DatabaseConfig . Charset ) )
default :
return fmt . Errorf ( "unsupported database type %q" , confDBType )
}
}
//db.SetLogger(util.Log())
//db.SetLogger(util.Log())