feat: 根目录文档、脚本、gitignore
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""只读探测:12 个 SQL 脚本在三个库上的执行状态。"""
|
||||
import io, sys, pymysql
|
||||
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
|
||||
|
||||
CONNS = {
|
||||
'200/zentao_dev (生产)': dict(host='192.168.3.200', user='root', password='PX4fTAAsJ#T!1',
|
||||
database='zentao_dev', charset='utf8mb4', connect_timeout=15),
|
||||
'161/zentao_dev': dict(host='192.168.1.161', user='devgps', password='dev@2021GPS',
|
||||
database='zentao_dev', charset='utf8mb4', connect_timeout=15),
|
||||
'161/zentao_dev_2026': dict(host='192.168.1.161', user='devgps', password='dev@2021GPS',
|
||||
database='zentao_dev_2026', charset='utf8mb4', connect_timeout=15),
|
||||
}
|
||||
|
||||
# (SQL文件, [探测项]) 探测项: ('col', 表, 列) / ('table', 表) / ('row', SQL, 期望值>0)
|
||||
CHECKS = [
|
||||
('20260724_alter_zt_file_add_url', [('col', 'zt_file', 'url')]),
|
||||
('20260724_alter_zt_meeting_add_url', [('col', 'zt_meeting', 'url')]),
|
||||
('20260724_alter_zt_story_add_ai_doc_urls', [('col', 'zt_story', c) for c in
|
||||
['prd_url', 'code_review_url', 'work_log_url', 'test_case_url',
|
||||
'test_report_download_url', 'test_report_submit_url', 'test_other_url', 'code_review_status']]),
|
||||
('20260724_alter_zt_story_expand_add_ai_rate', [('col', 'zt_story_expand', 'ai_participation_rate')]),
|
||||
('20260724_insert_ai_user', [('row', "SELECT COUNT(*) FROM zt_user WHERE account='ai'")]),
|
||||
('20260728_create_zt_doc_check', [('table', 'zt_doc_check')]),
|
||||
('20260728_create_zt_perf_config', [('table', 'zt_perf_config')]),
|
||||
('20260728_init_zt_perf_config', [('row', "SELECT COUNT(*) FROM zt_perf_config")]),
|
||||
('20260729_alter_zt_story_expand_acceptance', [('col', 'zt_story_expand', 'acceptance_criteria')]),
|
||||
('20260729_insert_perf_menu', [('row', "SELECT COUNT(*) FROM base_menu WHERE id BETWEEN 1539 AND 1551")]),
|
||||
('20260730_alter_zt_user_dev_direction', [('col', 'zt_user', 'dev_direction')]),
|
||||
('20260731_alter_zt_story_doc_update', [('col', 'zt_story', 'ai_doc_update_url')]),
|
||||
]
|
||||
|
||||
for label, cfg in CONNS.items():
|
||||
try:
|
||||
conn = pymysql.connect(**cfg)
|
||||
except Exception as e:
|
||||
print(f'\n===== {label}: 连接失败 {e}'); continue
|
||||
cur = conn.cursor()
|
||||
print(f'\n===== {label} =====')
|
||||
for fname, probes in CHECKS:
|
||||
marks = []
|
||||
for p in probes:
|
||||
try:
|
||||
if p[0] == 'col':
|
||||
cur.execute("""SELECT COUNT(*) FROM information_schema.columns
|
||||
WHERE table_schema=DATABASE() AND table_name=%s AND column_name=%s""",
|
||||
(p[1], p[2]))
|
||||
marks.append(f'{p[2]}={"√" if cur.fetchone()[0] else "×"}')
|
||||
elif p[0] == 'table':
|
||||
cur.execute("""SELECT COUNT(*) FROM information_schema.tables
|
||||
WHERE table_schema=DATABASE() AND table_name=%s""", (p[1],))
|
||||
marks.append(f'{p[1]}={"√" if cur.fetchone()[0] else "×"}')
|
||||
else:
|
||||
cur.execute(p[1])
|
||||
marks.append(f'行数={cur.fetchone()[0]}')
|
||||
except Exception as e:
|
||||
marks.append(f'ERR:{e}')
|
||||
ok = all('×' not in m and 'ERR' not in m and '行数=0' not in m for m in marks)
|
||||
print(f' {"✅" if ok else "❌"} {fname}: {"; ".join(marks)}')
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user