Update index.py

pull/577/head
Mr Chen 1 year ago
parent fc1e23f12d
commit 29c7367906
  1. 45
      plugins/mysql/index.py

@ -3065,7 +3065,7 @@ def syncDatabaseRepair(version=''):
table_check_file = tmp_dir+'/'+table_name+'.txt'
if os.path.exists(table_check_file):
print(table_name+', 已检查OK')
# print(table_name+', 已检查OK')
continue
# 比较总数
@ -3073,12 +3073,13 @@ def syncDatabaseRepair(version=''):
local_count_data = local_db.query(cmd_count_sql)
sync_count_data = sync_db.query(cmd_count_sql)
print("总数据比较: ",local_count_data, sync_count_data)
if local_count_data[0]['num'] != sync_count_data[0]['num']:
if local_count_data != sync_count_data:
print("总数据比较: ",local_count_data, sync_count_data)
inconsistent_table.append(table_name)
print(table_name+', 需要同步。')
diff = sync_count_data[0]['num'] - local_count_data[0]['num']
print(table_name+', need sync. diff,'+str(diff))
else:
print(table_name+', 正常OK')
# print(table_name+', 正常OK')
mw.execShell("echo 'ok' > "+table_check_file)
# inconsistent_table = ['99cms.mc_order']
@ -3113,7 +3114,7 @@ def syncDatabaseRepair(version=''):
if local_select_data == sync_select_data:
data_count = len(local_select_data)
if data_count == 0:
print(table_name+"完全一致..")
print(table_name+",完全一致..")
is_break = True
break
@ -3121,27 +3122,26 @@ def syncDatabaseRepair(version=''):
local_count_data = local_db.query(cmd_count_sql)
sync_count_data = sync_db.query(cmd_count_sql)
print(local_count_data,sync_count_data)
if local_count_data[0]['num'] == sync_count_data[0]['num']:
is_break = True
break
# if local_count_data[0]['num'] == sync_count_data[0]['num']:
# is_break = True
# break
diff = sync_count_data[0]['num'] - local_count_data[0]['num']
print("diff," + str(diff)+' line data!')
# print(table_name,data_count)
print('pos',local_select_data[data_count-1][pkey_name])
pkey_val = local_select_data[data_count-1][pkey_name]
# print(pkey_val)
mw.writeFile(table_name_pos_file, str(pkey_val))
else:
for insert_data in sync_select_data:
for idx in range(len(sync_select_data)):
insert_data = sync_select_data[idx]
# print(insert_data)
local_inquery_sql = 'select id from ' + table_name+ ' where ' +pkey_name+' = '+ str(insert_data[pkey_name])
# print(local_inquery_sql)
tdata = local_db.query(local_inquery_sql)
print(tdata)
# print(tdata)
if len(tdata) == 0:
print("id:"+ str(insert_data[pkey_name])+ " 不存在,插入中")
insert_sql = 'insert into ' + table_name
@ -3157,7 +3157,22 @@ def syncDatabaseRepair(version=''):
r = local_db.execute(insert_sql)
print(r)
else:
mw.writeFile(table_name_pos_file, str(insert_data[pkey_name]))
if sync_select_data[idx] == local_select_data[idx]:
continue
print("id:"+ str(insert_data[pkey_name])+ " 数据不一致,更新中")
update_sql = 'update ' + table_name
field_str = ''
value_str = ''
for field in insert_data:
if field == pkey_name:
continue
field_str += '`'+field+'`=\''+escape_string(str(insert_data[field]))+'\','
field_str = field_str.strip(',')
update_sql = update_sql+' set '+field_str+' where '+pkey_name+'=\''+str(insert_data[pkey_name])+'\';'
print(update_sql)
r = local_db.execute(update_sql)
print(r)
# print(local_select_data)

Loading…
Cancel
Save