forked from mirror/gorm
Add DB method
This commit is contained in:
parent
d716e456f4
commit
e487f355a0
16
gorm.go
16
gorm.go
|
@ -3,6 +3,7 @@ package gorm
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
@ -220,6 +221,21 @@ func (db *DB) AddError(err error) error {
|
||||||
return db.Error
|
return db.Error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DB returns `*sql.DB`
|
||||||
|
func (db *DB) DB() (*sql.DB, error) {
|
||||||
|
connPool := db.ConnPool
|
||||||
|
|
||||||
|
if stmtDB, ok := connPool.(*PreparedStmtDB); ok {
|
||||||
|
connPool = stmtDB.ConnPool
|
||||||
|
}
|
||||||
|
|
||||||
|
if sqldb, ok := connPool.(*sql.DB); ok {
|
||||||
|
return sqldb, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, errors.New("invalid db")
|
||||||
|
}
|
||||||
|
|
||||||
func (db *DB) getInstance() *DB {
|
func (db *DB) getInstance() *DB {
|
||||||
if db.clone > 0 {
|
if db.clone > 0 {
|
||||||
tx := &DB{Config: db.Config}
|
tx := &DB{Config: db.Config}
|
||||||
|
|
|
@ -24,6 +24,15 @@ func init() {
|
||||||
log.Printf("failed to connect database, got error %v\n", err)
|
log.Printf("failed to connect database, got error %v\n", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
} else {
|
} else {
|
||||||
|
sqlDB, err := DB.DB()
|
||||||
|
if err == nil {
|
||||||
|
err = sqlDB.Ping()
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("failed to connect database, got error %v\n", err)
|
||||||
|
}
|
||||||
|
|
||||||
RunMigrations()
|
RunMigrations()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue