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文件已成功更新!")
|