bug fixed
This commit is contained in:
parent
4e4e4852c6
commit
82cd602b26
95
engine.go
95
engine.go
|
@ -520,77 +520,76 @@ func (engine *Engine) Sync(beans ...interface{}) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}*/
|
}
|
||||||
var isEmpty bool = false
|
err = engine.CreateTables(bean)
|
||||||
if isEmpty {
|
if err != nil {
|
||||||
err = engine.DropTables(bean)
|
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 {
|
if err != nil {
|
||||||
return err
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
} else {
|
if !isExist {
|
||||||
for _, col := range table.Columns {
|
|
||||||
session := engine.NewSession()
|
session := engine.NewSession()
|
||||||
session.Statement.RefTable = table
|
session.Statement.RefTable = table
|
||||||
defer session.Close()
|
defer session.Close()
|
||||||
isExist, err := session.isColumnExist(table.Name, col.Name)
|
err = session.addIndex(table.Name, idx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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 {
|
for uqe, _ := range table.Uniques {
|
||||||
session := engine.NewSession()
|
session := engine.NewSession()
|
||||||
session.Statement.RefTable = table
|
session.Statement.RefTable = table
|
||||||
defer session.Close()
|
defer session.Close()
|
||||||
isExist, err := session.isIndexExist(table.Name, idx, false)
|
isExist, err := session.isIndexExist(table.Name, uqe, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if !isExist {
|
||||||
for uqe, _ := range table.Uniques {
|
|
||||||
session := engine.NewSession()
|
session := engine.NewSession()
|
||||||
session.Statement.RefTable = table
|
session.Statement.RefTable = table
|
||||||
defer session.Close()
|
defer session.Close()
|
||||||
isExist, err := session.isIndexExist(table.Name, uqe, true)
|
err = session.addUnique(table.Name, uqe)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue