#!/usr/bin/env python3 """补查:requirement version 分布 + bk_20260422_strategy 的 version 值 + capability.tags 结构""" import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).parent.parent.parent)) from knowhub.knowhub_db.pg_capability_store import PostgreSQLCapabilityStore def show(cur, title, sql): print(f'\n=== {title} ===', flush=True) cur.execute(sql) rows = cur.fetchall() if not rows: print(' (空)', flush=True); return cols = list(rows[0].keys()) print(' ' + ' | '.join(cols), flush=True) for r in rows: print(' ' + ' | '.join(str(r[c])[:80] for c in cols), flush=True) def main(): s = PostgreSQLCapabilityStore() cur = s._get_cursor() try: cur.execute("SET statement_timeout = '30s'") show(cur, 'requirement version 分布', "SELECT version, COUNT(*) n FROM requirement GROUP BY version ORDER BY n DESC") show(cur, 'bk_20260422_strategy 的 version 分布', "SELECT version, COUNT(*) n FROM bk_20260422_strategy GROUP BY version") show(cur, 'bk_20260422_strategy_capability 的 cap_id 前 5', "SELECT DISTINCT capability_id FROM bk_20260422_strategy_capability LIMIT 5") show(cur, 'capability 列结构', """SELECT column_name, data_type FROM information_schema.columns WHERE table_name='capability' ORDER BY ordinal_position""") show(cur, 'resource 列结构', """SELECT column_name, data_type FROM information_schema.columns WHERE table_name='resource' ORDER BY ordinal_position""") show(cur, 'strategy 列结构', """SELECT column_name, data_type FROM information_schema.columns WHERE table_name='strategy' ORDER BY ordinal_position""") finally: cur.close(); s.close() if __name__ == '__main__': main()