# 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` 一起上传到服务器。 ```bash # 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_*`