bug fixed

This commit is contained in:
Lunny Xiao 2013-09-29 09:02:01 +08:00
parent 4e4e4852c6
commit 82cd602b26
1 changed files with 47 additions and 48 deletions

View File

@ -520,77 +520,76 @@ func (engine *Engine) Sync(beans ...interface{}) error {
if err != nil {
return err
}
} else {
/*isEmpty, err := engine.IsEmptyTable(bean)
}
/*isEmpty, err := engine.IsEmptyTable(bean)
if err != nil {
return err
}*/
var isEmpty bool = false
if isEmpty {
err = engine.DropTables(bean)
if err != nil {
return err
}*/
var isEmpty bool = false
if isEmpty {
err = engine.DropTables(bean)
}
err = engine.CreateTables(bean)
if err != nil {
return err
}
} else {
for _, col := range table.Columns {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
isExist, err := session.isColumnExist(table.Name, col.Name)
if err != nil {
return err
}
err = engine.CreateTables(bean)
if !isExist {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
err = session.addColumn(col.Name)
if err != nil {
return err
}
}
}
for idx, _ := range table.Indexes {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
isExist, err := session.isIndexExist(table.Name, idx, false)
if err != nil {
return err
}
} else {
for _, col := range table.Columns {
if !isExist {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
isExist, err := session.isColumnExist(table.Name, col.Name)
err = session.addIndex(table.Name, idx)
if err != nil {
return err
}
if !isExist {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
err = session.addColumn(col.Name)
if err != nil {
return err
}
}
}
}
for idx, _ := range table.Indexes {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
isExist, err := session.isIndexExist(table.Name, idx, false)
if err != nil {
return err
}
if !isExist {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
err = session.addIndex(table.Name, idx)
if err != nil {
return err
}
}
for uqe, _ := range table.Uniques {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
isExist, err := session.isIndexExist(table.Name, uqe, true)
if err != nil {
return err
}
for uqe, _ := range table.Uniques {
if !isExist {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
isExist, err := session.isIndexExist(table.Name, uqe, true)
err = session.addUnique(table.Name, uqe)
if err != nil {
return err
}
if !isExist {
session := engine.NewSession()
session.Statement.RefTable = table
defer session.Close()
err = session.addUnique(table.Name, uqe)
if err != nil {
return err
}
}
}
}
}