backup_order_tables.py 1.2 KB

123456789101112131415161718192021222324252627282930
  1. # -*- coding: utf-8 -*-
  2. """备份订单链路相关表(写接口测试前置)。"""
  3. import json
  4. import os
  5. import re
  6. import pymysql
  7. YML = r"C:\Users\Administrator\WorkBuddy\2026-10-17-12-27-10\java-rewrite\yoshop-java\src\main\resources\application.yml"
  8. pwd = re.findall(r"password:\s*(.+)", open(YML, encoding="utf-8").read())[0].strip().strip('"')
  9. conn = pymysql.connect(host="192.168.1.177", port=3306, user="root", password=pwd,
  10. database="shop", charset="utf8mb4")
  11. cur = conn.cursor()
  12. os.makedirs("backup", exist_ok=True)
  13. TABLES = [
  14. "yoshop_order", "yoshop_order_goods", "yoshop_order_address",
  15. "yoshop_order_delivery", "yoshop_order_delivery_goods",
  16. "yoshop_order_refund", "yoshop_order_refund_address", "yoshop_order_refund_image",
  17. "yoshop_user", "yoshop_user_balance_log", "yoshop_user_points_log",
  18. "yoshop_user_coupon", "yoshop_goods", "yoshop_goods_sku", "yoshop_store_address",
  19. ]
  20. for t in TABLES:
  21. cur.execute("select * from " + t)
  22. cols = [d[0] for d in cur.description]
  23. rows = [dict(zip(cols, r)) for r in cur.fetchall()]
  24. json.dump(rows, open("backup/%s.json" % t, "w", encoding="utf-8"), ensure_ascii=False, default=str)
  25. print(t, len(rows))
  26. conn.close()