50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
|
|
import os
|
||
|
|
import pg8000.dbapi as pg
|
||
|
|
from lawrisk.utils.env_loader import load_env
|
||
|
|
|
||
|
|
load_env()
|
||
|
|
|
||
|
|
def get_db_connection():
|
||
|
|
conn_params = {
|
||
|
|
"host": os.getenv("LIC_PG_HOST", "172.24.240.1"),
|
||
|
|
"port": int(os.getenv("LIC_PG_PORT", "5432")),
|
||
|
|
"user": os.getenv("LIC_PG_USER", "postgres"),
|
||
|
|
"password": os.getenv("LIC_PG_PASSWORD", ""),
|
||
|
|
"database": os.getenv("LIC_PG_DATABASE", "licensing_risks"),
|
||
|
|
}
|
||
|
|
return pg.connect(**conn_params)
|
||
|
|
|
||
|
|
def delete_test_items():
|
||
|
|
blacklist = [
|
||
|
|
"测试许可_SearchTest",
|
||
|
|
"演出经纪机构变更",
|
||
|
|
"演出经纪机构从事营业性演出经营活动审批"
|
||
|
|
]
|
||
|
|
|
||
|
|
conn = get_db_connection()
|
||
|
|
cursor = conn.cursor()
|
||
|
|
|
||
|
|
for item in blacklist:
|
||
|
|
print(f"正在从数据库彻底删除: {item}")
|
||
|
|
# 使用子查询直接全量清理
|
||
|
|
try:
|
||
|
|
# 1. 解绑主题
|
||
|
|
cursor.execute("DELETE FROM region_theme_permits WHERE permit_id IN (SELECT id FROM permits WHERE name = %s)", [item])
|
||
|
|
# 2. 解绑风险
|
||
|
|
cursor.execute("DELETE FROM region_permit_risks WHERE permit_id IN (SELECT id FROM permits WHERE name = %s)", [item])
|
||
|
|
# 3. 解绑服务部门
|
||
|
|
cursor.execute("DELETE FROM service_department_permits WHERE permit_id IN (SELECT id FROM permits WHERE name = %s)", [item])
|
||
|
|
# 4. 删除主表
|
||
|
|
cursor.execute("DELETE FROM permits WHERE name = %s", [item])
|
||
|
|
print(f" 事项 '{item}' 删除成功。")
|
||
|
|
conn.commit()
|
||
|
|
except Exception as e:
|
||
|
|
conn.rollback()
|
||
|
|
print(f" 事项 '{item}' 删除过程中出错: {e}")
|
||
|
|
|
||
|
|
conn.close()
|
||
|
|
print("数据库清理完成。")
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
delete_test_items()
|