compare_missing_ids.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. # -*- coding: utf-8 -*-
  2. import pymysql
  3. conn = pymysql.connect(
  4. host='cq-cdb-8fjmemkb.sql.tencentcdb.com', port=27220,
  5. user='root', password='Ylrz_1q2w3e4r5t6y',
  6. database='ylrz_saas', charset='utf8mb4',
  7. )
  8. cur = conn.cursor()
  9. cur.execute('SELECT menu_id FROM tenant_sys_menu_bak')
  10. bak_ids = set(r[0] for r in cur.fetchall())
  11. cur.execute('SELECT menu_id FROM tenant_sys_menu')
  12. cur_ids = set(r[0] for r in cur.fetchall())
  13. missing = sorted(bak_ids - cur_ids)
  14. extra = sorted(cur_ids - bak_ids)
  15. print('missing_count', len(missing))
  16. print('extra_count', len(extra))
  17. print('missing_first20', missing[:20])
  18. print('missing_last20', missing[-20:])
  19. # check if missing are contiguous ranges
  20. if missing:
  21. ranges = []
  22. start = prev = missing[0]
  23. for x in missing[1:]:
  24. if x == prev + 1:
  25. prev = x
  26. else:
  27. ranges.append((start, prev))
  28. start = prev = x
  29. ranges.append((start, prev))
  30. print('missing_ranges_sample', ranges[:15], '... total_ranges', len(ranges))
  31. cur.close()
  32. conn.close()