patch_yml.py 1.4 KB

123456789101112131415161718192021222324252627282930
  1. # -*- coding: utf-8 -*-
  2. """对 application.yml 做增量修改(不读取/输出密码)"""
  3. import re
  4. from _root import ROOT
  5. YML = str(ROOT / "yoshop-java/src/main/resources/application.yml")
  6. t = open(YML, encoding="utf-8").read()
  7. # 1. jackson 增加 snake_case 全局策略
  8. if "property-naming-strategy" not in t:
  9. t = t.replace(" time-zone: Asia/Shanghai",
  10. " time-zone: Asia/Shanghai\n # PHP 出参全部是 snake_case(goods_id / per_page ...),全局统一\n property-naming-strategy: SNAKE_CASE", 1)
  11. # 2. 逻辑删除约定修正:0=正常 10=删除
  12. t = re.sub(r"logic-delete-value:\s*\d+", "logic-delete-value: 10", t)
  13. t = re.sub(r"logic-not-delete-value:\s*\d+", "logic-not-delete-value: 0", t)
  14. # 3. db-config 增加 table-prefix
  15. if "table-prefix" not in t:
  16. t = t.replace(" db-config:", " db-config:\n # 表统一前缀\n table-prefix: yoshop_", 1)
  17. # 4. 末尾追加 yoshop.base-url
  18. if "base-url" not in t:
  19. t = t.rstrip() + "\n\nyoshop:\n # 本地存储文件的访问域名(storage=local 时 preview_url = base + /uploads/ + file_path)\n base-url: https://shop.qinys.cn\n"
  20. open(YML, "w", encoding="utf-8").write(t)
  21. # 校验关键行存在且不输出密码
  22. for key in ["property-naming-strategy: SNAKE_CASE", "table-prefix: yoshop_",
  23. "logic-delete-value: 10", "logic-not-delete-value: 0", "base-url: https://shop.qinys.cn"]:
  24. print(("OK " if key in t else "MISS") + " " + key)