bug fixed for sync2

This commit is contained in:
Lunny Xiao 2015-06-27 12:36:38 +08:00
parent 76eef59c8f
commit 2ee7de9fa5
2 changed files with 20 additions and 15 deletions

View File

@ -3889,6 +3889,7 @@ func (s *Session) Sync2(beans ...interface{}) error {
} }
var foundIndexNames = make(map[string]bool) var foundIndexNames = make(map[string]bool)
var addedNames = make(map[string]*core.Index)
for name, index := range table.Indexes { for name, index := range table.Indexes {
var oriIndex *core.Index var oriIndex *core.Index
@ -3912,20 +3913,7 @@ func (s *Session) Sync2(beans ...interface{}) error {
} }
if oriIndex == nil { if oriIndex == nil {
if index.Type == core.UniqueType { addedNames[name] = index
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
err = session.addUnique(table.Name, name)
} else if index.Type == core.IndexType {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
err = session.addIndex(table.Name, name)
}
if err != nil {
return err
}
} }
} }
@ -3938,6 +3926,23 @@ func (s *Session) Sync2(beans ...interface{}) error {
} }
} }
} }
for name, index := range addedNames {
if index.Type == core.UniqueType {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
err = session.addUnique(table.Name, name)
} else if index.Type == core.IndexType {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
err = session.addIndex(table.Name, name)
}
if err != nil {
return err
}
}
} }
} }

View File

@ -17,7 +17,7 @@ import (
) )
const ( const (
Version string = "0.4.3.0526" Version string = "0.4.3.0627"
) )
func regDrvsNDialects() bool { func regDrvsNDialects() bool {