python2版本的sql文件同步自动化检测代码
This commit is contained in:
45
Clickhouse最新全量建表语句/sql文件同步自动化检测方案/sqlFilesAutoDetect.py
Normal file
45
Clickhouse最新全量建表语句/sql文件同步自动化检测方案/sqlFilesAutoDetect.py
Normal file
@@ -0,0 +1,45 @@
|
||||
# -*- coding: utf-8 -
|
||||
import os
|
||||
|
||||
newSqlFilePath = "Clickhouse_TSG_建表语句_new.sql" #新表文件路径
|
||||
oldSqlFilePath = "Clickhouse_TSG_建表语句_old.sql" #旧表文件路径
|
||||
|
||||
shellCommand1 = "diff "+newSqlFilePath +" "+oldSqlFilePath#shell命令
|
||||
shellCommand2 = "diff "+oldSqlFilePath +" "+newSqlFilePath#shell命令,左右表位置互换,可能有不同的对比结果
|
||||
shellCommand = [shellCommand1,shellCommand2]
|
||||
|
||||
for s in range(0,len(shellCommand)):
|
||||
print shellCommand[s]+":"
|
||||
re = os.popen(shellCommand[s]).readlines()
|
||||
result = []
|
||||
isRight= False #未出现右箭头
|
||||
keyWord = ["PRIMARY"] #不能要的关键字
|
||||
isKeyWord = False #表示当前列表未出现关键字
|
||||
for i in range(0, len(re)): # 由于原始结果需要转换编码,所以循环转为utf8编码并且去除\n换行
|
||||
res = re[i].strip('\n')
|
||||
for j in range(0,len(keyWord)):
|
||||
if str(res).find(keyWord[j]) != -1:
|
||||
isKeyWord = True # 表示res出现关键字
|
||||
if isRight == False and str(res).find(">", 0, 1) == 0:
|
||||
isRight = True
|
||||
result.append(res)
|
||||
elif isRight == True and str(res).find(">",0,1) == -1 :
|
||||
if isKeyWord ==False:
|
||||
print result
|
||||
result = []
|
||||
result.append(res)
|
||||
isRight = False
|
||||
isKeyWord = False
|
||||
else:
|
||||
result.append(res)
|
||||
if i == len(re) -1 :
|
||||
if isKeyWord == False:
|
||||
print result
|
||||
print ""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user