Refactor GORM Config
This commit is contained in:
parent
48cf28258f
commit
a699c1e560
31
config.go
Normal file
31
config.go
Normal file
@ -0,0 +1,31 @@
|
||||
package gorm
|
||||
|
||||
import "github.com/jinzhu/gorm/logger"
|
||||
|
||||
// Config GORM config
|
||||
type Config struct {
|
||||
// MaxIdleConnections sets the maximum number of connections in the idle connection pool
|
||||
MaxIdleConnections int
|
||||
// MaxOpenConnections sets the maximum number of open connections to the database
|
||||
MaxOpenConnections int
|
||||
|
||||
// SingularTable use singular table name, by default, GORM will pluralize your struct's name as table name
|
||||
// Refer https://github.com/jinzhu/inflection for inflection rules
|
||||
SingularTable bool
|
||||
|
||||
// BlockGlobalUpdate generates an error on update/delete without where clause, this is to prevent eventual error with empty objects updates/deletions
|
||||
BlockGlobalUpdate bool
|
||||
|
||||
// Logger
|
||||
Logger logger.Interface
|
||||
LogMode logger.LogLevel
|
||||
|
||||
// Dialect DB Dialect
|
||||
Dialect Dialect
|
||||
|
||||
// Callbacks defined GORM callbacks
|
||||
Callbacks *Callback
|
||||
|
||||
// db fresh db connection
|
||||
globalDbConnection SQLCommon
|
||||
}
|
22
gorm.go
22
gorm.go
@ -1,16 +1,14 @@
|
||||
package gorm
|
||||
|
||||
import "github.com/jinzhu/gorm/logger"
|
||||
// DB contains information for current db connection
|
||||
type DB struct {
|
||||
// Current operation
|
||||
Value interface{} // Value current operation data
|
||||
db SQLCommon
|
||||
search *search
|
||||
values map[string]interface{}
|
||||
|
||||
// Config GORM config
|
||||
type Config struct {
|
||||
// SingularTable use singular table name, by default, GORM will pluralize your struct's name as table name
|
||||
// Refer https://github.com/jinzhu/inflection for inflection rules
|
||||
SingularTable bool
|
||||
|
||||
// BlockGlobalUpdate generates an error on update/delete without where clause, this is to prevent eventual error with empty objects updates/deletions
|
||||
BlockGlobalUpdate bool
|
||||
|
||||
Logger logger.Interface
|
||||
LogMode logger.LogMode
|
||||
// Result result fields
|
||||
Error error
|
||||
RowsAffected int64
|
||||
}
|
||||
|
19
main.go
19
main.go
@ -63,7 +63,6 @@ func Open(dialect string, args ...interface{}) (db *DB, err error) {
|
||||
|
||||
db = &DB{
|
||||
db: dbSQL,
|
||||
logger: defaultLogger,
|
||||
values: map[string]interface{}{},
|
||||
callbacks: DefaultCallback,
|
||||
dialect: newDialect(dialect, dbSQL),
|
||||
@ -126,21 +125,6 @@ func (s *DB) Callback() *Callback {
|
||||
return s.parent.callbacks
|
||||
}
|
||||
|
||||
// SetLogger replace default logger
|
||||
func (s *DB) SetLogger(log logger) {
|
||||
s.logger = log
|
||||
}
|
||||
|
||||
// LogMode set log mode, `true` for detailed logs, `false` for no log, default, will only print error logs
|
||||
func (s *DB) LogMode(enable bool) *DB {
|
||||
if enable {
|
||||
s.logMode = 2
|
||||
} else {
|
||||
s.logMode = 1
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// NewScope create a scope for current operation
|
||||
func (s *DB) NewScope(value interface{}) *Scope {
|
||||
dbClone := s.clone()
|
||||
@ -444,7 +428,8 @@ func (s *DB) Table(name string) *DB {
|
||||
|
||||
// Debug start debug mode
|
||||
func (s *DB) Debug() *DB {
|
||||
return s.clone().LogMode(true)
|
||||
// FIXME Debug Mode
|
||||
return s
|
||||
}
|
||||
|
||||
// Begin begin a transaction
|
||||
|
Loading…
x
Reference in New Issue
Block a user