inspect_tenant_menu.py 1.5 KB

123456789101112131415161718192021222324252627282930313233
  1. # -*- coding: utf-8 -*-
  2. import pymysql
  3. DB = dict(
  4. host='cq-cdb-8fjmemkb.sql.tencentcdb.com', port=27220,
  5. user='root', password='Ylrz_1q2w3e4r5t6y',
  6. database='ylrz_saas', charset='utf8mb4',
  7. )
  8. conn = pymysql.connect(**DB)
  9. cur = conn.cursor()
  10. cur.execute('SELECT id, tenant_code, tenant_name, db_name, status FROM tenant_info ORDER BY id')
  11. print('TENANTS:')
  12. for r in cur.fetchall():
  13. print(r)
  14. checks = [
  15. ('template_count', 'SELECT COUNT(*) FROM tenant_sys_menu'),
  16. ('visible_roots', "SELECT COUNT(*) FROM tenant_sys_menu WHERE parent_id=0 AND visible='0' AND menu_type='M'"),
  17. ('bad_admin', "SELECT COUNT(*) FROM tenant_sys_menu WHERE component LIKE 'admin/%' AND visible='0'"),
  18. ('empty_M_dirs', "SELECT COUNT(*) FROM tenant_sys_menu m WHERE menu_type='M' AND visible='0' AND NOT EXISTS (SELECT 1 FROM tenant_sys_menu c WHERE c.parent_id=m.menu_id AND c.menu_type<>'F')"),
  19. ('path_dup_qw', """SELECT COUNT(*) FROM (SELECT parent_id,path FROM tenant_sys_menu WHERE parent_id IN (35001,35002,35003,35004,35005,35006,35007) AND menu_type<>'F' AND visible='0' GROUP BY parent_id,path HAVING COUNT(*)>1) t"""),
  20. ]
  21. print('STATS:')
  22. for name, sql in checks:
  23. cur.execute(sql)
  24. print(' ', name, cur.fetchone()[0])
  25. cur.execute("SELECT menu_id, menu_name, parent_id, path, visible FROM tenant_sys_menu WHERE parent_id IN (35100,35101,35102,35105,35106) AND visible='0' ORDER BY parent_id, order_num LIMIT 30")
  26. print('SYSTEM_SAMPLE:', cur.fetchall())
  27. cur.close()
  28. conn.close()