基于serf的数据库同步模块库
chenshijun
2019-10-12 fc65716cb14d829c5ad9f79aa909ec0564eea2bd
dbself.go
@@ -6,7 +6,6 @@
   "os"
   "os/exec"
   "path/filepath"
   "strconv"
   "strings"
   "sync"
   "github.com/jinzhu/gorm"
@@ -120,43 +119,19 @@
         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 && 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 {