Files
BMS/bms-back/sql/20261113_uuid_to_bigint_runbook.md
T

1.9 KiB
Raw Blame History

UUID -> bigint 夜间执行与冒烟清单

脚本:bms-back/sql/20261113_uuid_to_bigint_order_bill.sql

必须顺序(不要飞)

  1. 先停 Java / BMS 服务(含计费、出账、导出等异步 worker)
  2. 宝塔整库备份(SQL 不再做同库 *_bak_uuid 拷贝)
  3. 在服务器执行 SQL(下面一键脚本)
  4. SQL 成功后,再部署 Long 版 后端并启动
  5. 冒烟

旧包连新库或新包连旧库都会挂。一定先停 Java,再跑 SQL。

服务器一键执行

把同目录下 20261113_uuid_to_bigint_order_bill.sql 与 20261113_uuid_to_bigint_run.sh 一起上传到服务器。

# 1) 先停 Java(按你们部署方式改,以下为示例)
# systemctl stop bms-admin
# 或:kill / docker stop / 停掉所有 java -jar bms-*.jar

# 2) 再跑迁移
export BMS_DB_HOST=127.0.0.1
export BMS_DB_PORT=3306
export BMS_DB_NAME=bms
export BMS_DB_USER=root
export BMS_DB_PASS='******'
chmod +x 20261113_uuid_to_bigint_run.sh
./20261113_uuid_to_bigint_run.sh
# 或非交互:CONFIRM=YES ./20261113_uuid_to_bigint_run.sh

日志写在 sql/logs/uuid_to_bigint_*.log。

执行前

  1. 已停 Java / BMS(含计费/出账/导出异步)
  2. 已在宝塔做整库备份
  3. 建议在从库/备份库先干跑校验
  4. 准备好 Long 版后端包(SQL 成功后再发)

执行

  1. 确认 Java 已停
  2. 跑 ./20261113_uuid_to_bigint_run.sh(内部会执行整份 SQL)
  3. 查日志校验/抽查通过
  4. 部署新后端,启应用

冒烟

  • 订单列表能打开,billId 为数字
  • 新建/重计费一票,生成新 bigint bill_id
  • 手动加一笔应收费用 / 查费用明细
  • 生成一笔应收账单,明细能关联订单
  • 旧应收账单明细 JOIN prc_order_bill 正常
  • 应付费用/应付账单查看正常

回滚

  1. 停新包
  2. 用宝塔整库备份恢复
  3. 部署旧后端包

次日

  • 确认无误后 DROP *_old_uuid / mig_map_*