feat: 根目录文档、脚本、gitignore

This commit is contained in:
2026-10-08 16:15:33 +08:00
commit e98660ce4e
284 changed files with 26838 additions and 0 deletions
+60
View File
@@ -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()