mirror of
https://github.com/astaxie/beego.git
synced 2024-11-25 20:10:56 +00:00
orm add GetDB api #433
This commit is contained in:
parent
cacdb3228d
commit
d5b5c18cf9
@ -168,7 +168,7 @@ func addAliasWthDB(aliasName, driverName string, db *sql.DB) (*alias, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if dataBaseCache.add(aliasName, al) == false {
|
if dataBaseCache.add(aliasName, al) == false {
|
||||||
return nil, fmt.Errorf("db name `%s` already registered, cannot reuse", aliasName)
|
return nil, fmt.Errorf("DataBase alias name `%s` already registered, cannot reuse", aliasName)
|
||||||
}
|
}
|
||||||
|
|
||||||
return al, nil
|
return al, nil
|
||||||
@ -239,7 +239,7 @@ func SetDataBaseTZ(aliasName string, tz *time.Location) error {
|
|||||||
if al, ok := dataBaseCache.get(aliasName); ok {
|
if al, ok := dataBaseCache.get(aliasName); ok {
|
||||||
al.TZ = tz
|
al.TZ = tz
|
||||||
} else {
|
} else {
|
||||||
return fmt.Errorf("DataBase name `%s` not registered\n", aliasName)
|
return fmt.Errorf("DataBase alias name `%s` not registered\n", aliasName)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -260,3 +260,19 @@ func SetMaxOpenConns(aliasName string, maxOpenConns int) {
|
|||||||
fun.Call([]reflect.Value{reflect.ValueOf(maxOpenConns)})
|
fun.Call([]reflect.Value{reflect.ValueOf(maxOpenConns)})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get *sql.DB from registered database by db alias name.
|
||||||
|
// Use "default" as alias name if you not set.
|
||||||
|
func GetDB(aliasNames ...string) (*sql.DB, error) {
|
||||||
|
var name string
|
||||||
|
if len(aliasNames) > 0 {
|
||||||
|
name = aliasNames[0]
|
||||||
|
} else {
|
||||||
|
name = "default"
|
||||||
|
}
|
||||||
|
if al, ok := dataBaseCache.get(name); ok {
|
||||||
|
return al.DB, nil
|
||||||
|
} else {
|
||||||
|
return nil, fmt.Errorf("DataBase of alias name `%s` not found\n", name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -139,6 +139,15 @@ func throwFailNow(t *testing.T, err error, args ...interface{}) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetDB(t *testing.T) {
|
||||||
|
if db, err := GetDB(); err != nil {
|
||||||
|
throwFailNow(t, err)
|
||||||
|
} else {
|
||||||
|
err = db.Ping()
|
||||||
|
throwFailNow(t, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestSyncDb(t *testing.T) {
|
func TestSyncDb(t *testing.T) {
|
||||||
RegisterModel(new(Data), new(DataNull))
|
RegisterModel(new(Data), new(DataNull))
|
||||||
RegisterModel(new(User))
|
RegisterModel(new(User))
|
||||||
|
Loading…
Reference in New Issue
Block a user