forked from mirror/gorm
Show errors except RecordNotFound error by default for easy debug
This commit is contained in:
parent
dfc4194162
commit
690cb1430c
7
do.go
7
do.go
|
@ -262,8 +262,11 @@ func (s *Do) prepareUpdateSql(include_self bool) {
|
|||
}
|
||||
|
||||
if include_self {
|
||||
for key, value := range s.model.columnsAndValues("update") {
|
||||
sqls = append(sqls, fmt.Sprintf("%v = %v", s.quote(key), s.addToVars(value)))
|
||||
data := s.model.reflectData()
|
||||
if data.CanAddr() {
|
||||
for key, value := range s.model.columnsAndValues("update") {
|
||||
sqls = append(sqls, fmt.Sprintf("%v = %v", s.quote(key), s.addToVars(value)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -895,7 +895,7 @@ func TestUpdate(t *testing.T) {
|
|||
t.Errorf("Product 456 should be changed to 789")
|
||||
}
|
||||
|
||||
if db.Model(&product2).Update("CreatedAt", time.Now().Add(time.Hour)).Error != nil {
|
||||
if db.Model(product2).Update("CreatedAt", time.Now().Add(time.Hour)).Error != nil {
|
||||
t.Error("No error should raise when update with CamelCase")
|
||||
}
|
||||
|
||||
|
|
8
main.go
8
main.go
|
@ -16,7 +16,7 @@ type DB struct {
|
|||
tagIdentifier string
|
||||
singularTable bool
|
||||
logger Logger
|
||||
logMode bool
|
||||
logMode int
|
||||
}
|
||||
|
||||
func Open(driver, source string) (db DB, err error) {
|
||||
|
@ -40,7 +40,11 @@ func (s *DB) SetLogger(l Logger) {
|
|||
}
|
||||
|
||||
func (s *DB) LogMode(b bool) *DB {
|
||||
s.logMode = b
|
||||
if b {
|
||||
s.logMode = 2
|
||||
} else {
|
||||
s.logMode = 1
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
|
|
7
model.go
7
model.go
|
@ -127,14 +127,9 @@ func (m *Model) columnsHasValue(operation string) (fields []*Field) {
|
|||
}
|
||||
|
||||
func (m *Model) updatedColumnsAndValues(values map[string]interface{}, ignore_protected_attrs bool) (results map[string]interface{}, any_updated bool) {
|
||||
if m.data == nil {
|
||||
return values, true
|
||||
}
|
||||
|
||||
data := m.reflectData()
|
||||
if !data.CanAddr() {
|
||||
m.do.err(errors.New("Can't take address of the object"))
|
||||
return
|
||||
return values, true
|
||||
}
|
||||
|
||||
for key, value := range values {
|
||||
|
|
10
private.go
10
private.go
|
@ -34,7 +34,13 @@ func (s *DB) do(data interface{}) *Do {
|
|||
func (s *DB) err(err error) error {
|
||||
if err != nil {
|
||||
s.Error = err
|
||||
s.warn(err)
|
||||
if s.logMode == 0 {
|
||||
if err != RecordNotFound {
|
||||
go fmt.Println(err)
|
||||
}
|
||||
} else {
|
||||
s.warn(err)
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
@ -44,7 +50,7 @@ func (s *DB) hasError() bool {
|
|||
}
|
||||
|
||||
func (s *DB) print(level string, v ...interface{}) {
|
||||
if s.logMode || level == "debug" {
|
||||
if s.logMode == 2 || level == "debug" {
|
||||
if _, ok := s.parent.logger.(Logger); !ok {
|
||||
fmt.Println("logger haven't been set, using os.Stdout")
|
||||
s.parent.logger = default_logger
|
||||
|
|
Loading…
Reference in New Issue