76 lines
3.6 KiB
Python
76 lines
3.6 KiB
Python
|
|
# 使用简单的字符串替换方法更新SQL文件
|
|||
|
|
|
|||
|
|
# 读取SQL文件内容
|
|||
|
|
with open(r'd:\idea_demo\datai\datai-scenes\datai-scene-salesforce\datai-salesforce-config\src\main\resources\sql\salesforce_configuration.sql', 'r', encoding='utf-8') as f:
|
|||
|
|
lines = f.readlines()
|
|||
|
|
|
|||
|
|
new_lines = []
|
|||
|
|
in_insert = False
|
|||
|
|
insert_line = ""
|
|||
|
|
values_line = ""
|
|||
|
|
update_line = ""
|
|||
|
|
|
|||
|
|
for line in lines:
|
|||
|
|
stripped_line = line.strip()
|
|||
|
|
|
|||
|
|
if stripped_line.startswith("INSERT INTO datai_configuration"):
|
|||
|
|
in_insert = True
|
|||
|
|
# 替换字段列表
|
|||
|
|
insert_line = "INSERT INTO datai_configuration (config_key, config_value, create_by, create_time, update_by, update_time, remark, environment_id, is_sensitive, is_encrypted, is_active, tenant_id)"
|
|||
|
|
new_lines.append(insert_line + "\n")
|
|||
|
|
elif in_insert and stripped_line.startswith("VALUES"):
|
|||
|
|
# 替换VALUES部分
|
|||
|
|
# 原始VALUES格式:VALUES ('key', 'value', 'admin', NOW(), 'admin', NOW(), 'remark', 'system', 1)
|
|||
|
|
# 提取括号内的值
|
|||
|
|
# 处理可能的换行情况,确保获取完整的VALUES部分
|
|||
|
|
if '(' in stripped_line and ')' in stripped_line:
|
|||
|
|
# 简单情况:VALUES在一行
|
|||
|
|
values_part = stripped_line[stripped_line.find('(')+1:stripped_line.rfind(')')] # 提取括号内的所有内容
|
|||
|
|
else:
|
|||
|
|
# 复杂情况:VALUES跨多行,需要继续读取后续行
|
|||
|
|
values_part = stripped_line[stripped_line.find('(')+1:] # 提取当前行的括号内容
|
|||
|
|
# 这里简化处理,假设VALUES部分在一行内
|
|||
|
|
|
|||
|
|
# 处理可能包含的多余引号和括号
|
|||
|
|
values_part = values_part.strip()
|
|||
|
|
if values_part.startswith("'") and values_part.endswith("'"):
|
|||
|
|
values_part = values_part[1:-1]
|
|||
|
|
|
|||
|
|
values_list = values_part.split(', ')
|
|||
|
|
# 保留前7个值,然后添加新的字段值
|
|||
|
|
new_values_list = values_list[:7] # 保留前7个值
|
|||
|
|
new_values_list.extend(["NULL", "0", "0", "1", "'1'"]) # 添加新的字段值
|
|||
|
|
new_values = ', '.join(new_values_list)
|
|||
|
|
values_line = f"VALUES ({new_values})"
|
|||
|
|
new_lines.append(" " + values_line + "\n")
|
|||
|
|
elif in_insert and stripped_line.startswith("ON DUPLICATE KEY UPDATE"):
|
|||
|
|
# 替换ON DUPLICATE KEY UPDATE部分
|
|||
|
|
update_line = "ON DUPLICATE KEY UPDATE"
|
|||
|
|
new_update_content = " config_value = VALUES(config_value),"
|
|||
|
|
new_update_content += "\n update_by = VALUES(update_by),"
|
|||
|
|
new_update_content += "\n update_time = VALUES(update_time),"
|
|||
|
|
new_update_content += "\n remark = VALUES(remark),"
|
|||
|
|
new_update_content += "\n environment_id = VALUES(environment_id),"
|
|||
|
|
new_update_content += "\n is_sensitive = VALUES(is_sensitive),"
|
|||
|
|
new_update_content += "\n is_encrypted = VALUES(is_encrypted),"
|
|||
|
|
new_update_content += "\n is_active = VALUES(is_active),"
|
|||
|
|
new_update_content += "\n tenant_id = VALUES(tenant_id)"
|
|||
|
|
new_lines.append(" " + update_line + "\n")
|
|||
|
|
new_lines.append(new_update_content + "\n")
|
|||
|
|
elif in_insert and stripped_line.endswith(";"):
|
|||
|
|
# 结束INSERT语句
|
|||
|
|
new_lines.append(";")
|
|||
|
|
in_insert = False
|
|||
|
|
elif in_insert:
|
|||
|
|
# 跳过旧的字段列表和VALUES部分
|
|||
|
|
continue
|
|||
|
|
else:
|
|||
|
|
# 保留其他行
|
|||
|
|
new_lines.append(line)
|
|||
|
|
|
|||
|
|
# 写入更新后的内容
|
|||
|
|
with open(r'd:\idea_demo\datai\datai-scenes\datai-scene-salesforce\datai-salesforce-config\src\main\resources\sql\salesforce_configuration.sql', 'w', encoding='utf-8') as f:
|
|||
|
|
f.writelines(new_lines)
|
|||
|
|
|
|||
|
|
print("SQL文件已成功更新!")
|