feat: define xorm.FromDialectAndDB #1812

Merged
lunny merged 2 commits from jumpeiMano/xorm:add-from-db into master 2020-10-20 03:11:12 +00:00

View File

@ -61,6 +61,10 @@ func NewEngine(driverName string, dataSourceName string) (*Engine, error) {
return nil, err
}
return newEngine(driverName, dataSourceName, dialect, db)
}
func newEngine(driverName, dataSourceName string, dialect dialects.Dialect, db *core.DB) (*Engine, error) {
cacherMgr := caches.NewManager()
mapper := names.NewCacheMapper(new(names.SnakeMapper))
tagParser := tags.NewParser("xorm", dialect, mapper, mapper, cacherMgr)
@ -88,7 +92,7 @@ func NewEngine(driverName string, dataSourceName string) (*Engine, error) {
engine.SetLogger(log.NewLoggerAdapter(logger))
runtime.SetFinalizer(engine, func(engine *Engine) {
engine.Close()
_ = engine.Close()
})
return engine, nil
@ -101,6 +105,14 @@ func NewEngineWithParams(driverName string, dataSourceName string, params map[st
return engine, err
}
// NewEngineWithDialectAndDB new a db manager according to the parameter.
// If you do not want to use your own dialect or db, please use NewEngine.
// For creating dialect, you can call dialects.OpenDialect. And, for creating db,
// you can call core.Open or core.FromDB.
func NewEngineWithDialectAndDB(driverName, dataSourceName string, dialect dialects.Dialect, db *core.DB) (*Engine, error) {
lunny marked this conversation as resolved Outdated
Outdated
Review

How about rename it NewEngineWith.... to keep consistent with NewEngineWithParams.

How about rename it `NewEngineWith....` to keep consistent with `NewEngineWithParams`.
Review

@lunny Thanks for your reviewng. I fixed it!
fa7f45555f

@lunny Thanks for your reviewng. I fixed it! https://gitea.com/xorm/xorm/commit/fa7f45555f1232c2c62e2701be1680b8e644764d
return newEngine(driverName, dataSourceName, dialect, db)
}
// EnableSessionID if enable session id
func (engine *Engine) EnableSessionID(enable bool) {
engine.logSessionID = enable