|
|
|
@ -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) |
|
|
|
|