| | |
| | | "os" |
| | | "os/exec" |
| | | "path/filepath" |
| | | "strconv" |
| | | "strings" |
| | | "sync" |
| | | "github.com/jinzhu/gorm" |
| | |
| | | result := tx.Exec(sql) |
| | | err = result.Error |
| | | if err !=nil { |
| | | return false,result.Error |
| | | logger.Error("ExecuteSqlByGorm err:",err,",sql:",sql) |
| | | return false,err |
| | | } |
| | | if result.RowsAffected == 0{ |
| | | logger.Error("ExecuteSqlByGorm fail") |
| | | return false,errors.New("ExecuteSqlByGorm fail") |
| | | if result.RowsAffected == 0 { |
| | | logger.Debug("ExecuteSqlByGorm RowsAffected == 0",",sql:",sql) |
| | | err = errors.New("ExecuteSqlByGorm RowsAffected == 0") |
| | | return false,err |
| | | } |
| | | } |
| | | tx.Commit() |
| | | return true,nil |
| | | } |
| | | return false,errors.New("localDb is nil") |
| | | } |
| | | |
| | | type SyncSerf struct { |
| | | LamportTime string `json:"lamport_time"` |
| | | } |
| | | |
| | | func QueryLTimeFromDbByGorm() uint64 { |
| | | if localDb != nil { |
| | | var syncSerf []SyncSerf |
| | | err := localDb.Raw("select * from sync_serf").Scan(&syncSerf).Error |
| | | if err == nil { |
| | | if len(syncSerf) > 0{ |
| | | ltStr := syncSerf[0].LamportTime |
| | | logger.Info("db.LamportTime str:", ltStr) |
| | | t, e := strconv.ParseUint(ltStr, 10, 64) |
| | | if e != nil { |
| | | logger.Error("db.LamportTime parseUint err:", e) |
| | | } else { |
| | | curLTime = t |
| | | } |
| | | logger.Info("db.LamportTime:", ltStr) |
| | | }else { |
| | | err = localDb.Exec("insert into sync_serf values('0')").Error |
| | | if err !=nil { |
| | | logger.Error("sync_serf lamport_time init err:",err) |
| | | } |
| | | } |
| | | |
| | | } else { |
| | | logger.Error("get db.LamportTime err:", err) |
| | | } |
| | | } |
| | | return 0 |
| | | } |
| | | |
| | | type TableDesc struct { |
| | |
| | | var arr []string |
| | | var dumpSql []DumpSql |
| | | for _,table :=range tableNames { |
| | | logger.Info("dump current tableName:", table) |
| | | dumpSql = make([]DumpSql, 0) |
| | | var tDescArr []TableDesc |
| | | tSql := fmt.Sprintf(`PRAGMA table_info("%s")`, table) |
| | | err := localDb.Raw(tSql).Scan(&tDescArr).Error |
| | | logger.Debug("tDescArr err:", err, "len(tDescArr)=", len(tDescArr)) |
| | | if err !=nil { |
| | | return nil,errors.New("tableDesc err") |
| | | } |
| | |
| | | logger.Info("tSql:",tSql) |
| | | |
| | | err = localDb.Raw(tSql).Scan(&dumpSql).Error |
| | | logger.Debug("dump err:", err) |
| | | if err !=nil { |
| | | return nil,errors.New("dump err") |
| | | continue |
| | | } |
| | | if len(dumpSql)>0 { |
| | | for _,d :=range dumpSql { |