orm add GetDB api #433
Showing
2 changed files
with
27 additions
and
2 deletions
| ... | @@ -168,7 +168,7 @@ func addAliasWthDB(aliasName, driverName string, db *sql.DB) (*alias, error) { | ... | @@ -168,7 +168,7 @@ func addAliasWthDB(aliasName, driverName string, db *sql.DB) (*alias, error) { |
| 168 | } | 168 | } |
| 169 | 169 | ||
| 170 | if dataBaseCache.add(aliasName, al) == false { | 170 | if dataBaseCache.add(aliasName, al) == false { |
| 171 | return nil, fmt.Errorf("db name `%s` already registered, cannot reuse", aliasName) | 171 | return nil, fmt.Errorf("DataBase alias name `%s` already registered, cannot reuse", aliasName) |
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | return al, nil | 174 | return al, nil |
| ... | @@ -239,7 +239,7 @@ func SetDataBaseTZ(aliasName string, tz *time.Location) error { | ... | @@ -239,7 +239,7 @@ func SetDataBaseTZ(aliasName string, tz *time.Location) error { |
| 239 | if al, ok := dataBaseCache.get(aliasName); ok { | 239 | if al, ok := dataBaseCache.get(aliasName); ok { |
| 240 | al.TZ = tz | 240 | al.TZ = tz |
| 241 | } else { | 241 | } else { |
| 242 | return fmt.Errorf("DataBase name `%s` not registered\n", aliasName) | 242 | return fmt.Errorf("DataBase alias name `%s` not registered\n", aliasName) |
| 243 | } | 243 | } |
| 244 | return nil | 244 | return nil |
| 245 | } | 245 | } |
| ... | @@ -260,3 +260,19 @@ func SetMaxOpenConns(aliasName string, maxOpenConns int) { | ... | @@ -260,3 +260,19 @@ func SetMaxOpenConns(aliasName string, maxOpenConns int) { |
| 260 | fun.Call([]reflect.Value{reflect.ValueOf(maxOpenConns)}) | 260 | fun.Call([]reflect.Value{reflect.ValueOf(maxOpenConns)}) |
| 261 | } | 261 | } |
| 262 | } | 262 | } |
| 263 | |||
| 264 | // Get *sql.DB from registered database by db alias name. | ||
| 265 | // Use "default" as alias name if you not set. | ||
| 266 | func GetDB(aliasNames ...string) (*sql.DB, error) { | ||
| 267 | var name string | ||
| 268 | if len(aliasNames) > 0 { | ||
| 269 | name = aliasNames[0] | ||
| 270 | } else { | ||
| 271 | name = "default" | ||
| 272 | } | ||
| 273 | if al, ok := dataBaseCache.get(name); ok { | ||
| 274 | return al.DB, nil | ||
| 275 | } else { | ||
| 276 | return nil, fmt.Errorf("DataBase of alias name `%s` not found\n", name) | ||
| 277 | } | ||
| 278 | } | ... | ... |
| ... | @@ -139,6 +139,15 @@ func throwFailNow(t *testing.T, err error, args ...interface{}) { | ... | @@ -139,6 +139,15 @@ func throwFailNow(t *testing.T, err error, args ...interface{}) { |
| 139 | } | 139 | } |
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | func TestGetDB(t *testing.T) { | ||
| 143 | if db, err := GetDB(); err != nil { | ||
| 144 | throwFailNow(t, err) | ||
| 145 | } else { | ||
| 146 | err = db.Ping() | ||
| 147 | throwFailNow(t, err) | ||
| 148 | } | ||
| 149 | } | ||
| 150 | |||
| 142 | func TestSyncDb(t *testing.T) { | 151 | func TestSyncDb(t *testing.T) { |
| 143 | RegisterModel(new(Data), new(DataNull)) | 152 | RegisterModel(new(Data), new(DataNull)) |
| 144 | RegisterModel(new(User)) | 153 | RegisterModel(new(User)) | ... | ... |
-
Please register or sign in to post a comment