65 lines
2.1 KiB
Markdown
65 lines
2.1 KiB
Markdown
# UUID -> bigint 夜间执行与冒烟清单
|
||
|
||
脚本:`bms-back/sql/20261113_uuid_to_bigint_order_bill.sql`
|
||
|
||
## 必须顺序(不要飞)
|
||
|
||
1. **先停 Java / BMS 服务**(含计费、出账、导出等异步 worker)
|
||
2. 全库或关键表备份
|
||
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. 全库备份(或至少:prc_order_bill*、prc_income*、prc_pay_bill*、ar_bill_detail*、prc_billing_task、pay_bill_line)
|
||
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. 或:`SET FOREIGN_KEY_CHECKS=0` 后将 `*_bak_uuid` RENAME 回主表名(引用列需额外处理)
|
||
4. 部署旧后端包
|
||
|
||
## 次日
|
||
- 确认无误后 DROP `*_old_uuid` / `*_bak_uuid` / `mig_map_*`
|