基于serf的数据库同步模块库
liuxiaolong
2019-10-11 9bddcbcaacca649c4e0686afdde8d5804b17ad9c
dbself.go
@@ -6,7 +6,6 @@
   "os"
   "os/exec"
   "path/filepath"
   "strconv"
   "strings"
   "sync"
   "github.com/jinzhu/gorm"
@@ -120,43 +119,18 @@
         result := tx.Exec(sql)
         err = result.Error
         if err !=nil {
            return false,result.Error
            return false,err
         }
         if result.RowsAffected == 0{
            logger.Error("ExecuteSqlByGorm fail")
            return false,errors.New("ExecuteSqlByGorm fail")
            err = errors.New("ExecuteSqlByGorm fail")
            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 && 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 {
         logger.Error("get db.LamportTime err:", err)
      }
   }
   return 0
}
type TableDesc struct {