更新UUID到BIGINT的迁移脚本,优化备份和回滚说明

This commit is contained in:
wuweihua
2026-11-14 00:40:16 +08:00
parent 0094e4aaff
commit 4f2f2db20f
3 changed files with 13 additions and 27 deletions
@@ -3,7 +3,7 @@
-- 范围 PK:prc_order_bill.bill_id / prc_income_bill.income_bill_id / prc_income_bill_fee.fee_id / prc_pay_bill.pay_bill_id / prc_pay_bill_fee.fee_id
-- 范围 FK/引用:prc_order_bill_ext、income/pay 上 bill_id、prc_billing_task、ar_bill_detail*、ar_bill_generate_task、pay_bill_line/log/diff
-- 不动:ar_bill 等已 bigint;prc_quote* 报价 UUID;任务 taskId
-- 回滚:见文末;更稳妥为整库备份恢复 + 旧后端包
-- 回滚:用宝塔/整库备份恢复 + 旧后端包(本脚本不再做同库 *_bak_uuid 拷贝)
--
-- FK盘点: fk_income_bill_order_bill, fk_income_bill_fee_order, fk_order_bill_ext_bill, fk_pay_bill_order_bill, fk_pay_bill_fee_order
SET NAMES utf8mb4;
@@ -25,19 +25,8 @@ WHERE TABLE_SCHEMA = DATABASE()
AND REFERENCED_TABLE_NAME IN ('prc_order_bill','prc_income_bill','prc_income_bill_fee','prc_pay_bill','prc_pay_bill_fee')
ORDER BY TABLE_NAME, CONSTRAINT_NAME;
-- ========== 1. 备份关键表 ==========
DROP TABLE IF EXISTS `prc_order_bill_bak_uuid`;
CREATE TABLE `prc_order_bill_bak_uuid` AS SELECT * FROM `prc_order_bill`;
DROP TABLE IF EXISTS `prc_order_bill_ext_bak_uuid`;
CREATE TABLE `prc_order_bill_ext_bak_uuid` AS SELECT * FROM `prc_order_bill_ext`;
DROP TABLE IF EXISTS `prc_income_bill_bak_uuid`;
CREATE TABLE `prc_income_bill_bak_uuid` AS SELECT * FROM `prc_income_bill`;
DROP TABLE IF EXISTS `prc_income_bill_fee_bak_uuid`;
CREATE TABLE `prc_income_bill_fee_bak_uuid` AS SELECT * FROM `prc_income_bill_fee`;
DROP TABLE IF EXISTS `prc_pay_bill_bak_uuid`;
CREATE TABLE `prc_pay_bill_bak_uuid` AS SELECT * FROM `prc_pay_bill`;
DROP TABLE IF EXISTS `prc_pay_bill_fee_bak_uuid`;
CREATE TABLE `prc_pay_bill_fee_bak_uuid` AS SELECT * FROM `prc_pay_bill_fee`;
-- ========== 1. 跳过同库 bak(已在宝塔做整库备份,避免再拷一份占盘/耗时) ==========
-- 回滚请用宝塔备份恢复,不再依赖 *_bak_uuid
-- ========== 2. 映射表 ==========
DROP TABLE IF EXISTS `mig_map_order_bill`;
@@ -397,13 +386,11 @@ SELECT d.detail_id, d.prc_order_bill_id, o.order_no FROM ar_bill_detail d JOIN p
SELECT f.detail_fee_id, f.prc_income_bill_fee_id, i.fee_type FROM ar_bill_detail_fee f JOIN prc_income_bill_fee i ON i.fee_id = f.prc_income_bill_fee_id LIMIT 5;
-- ========== 9. 回滚说明(勿自动执行) ==========
-- 推荐:整库从备份恢复 + 部署旧后端包
-- 或:SET FOREIGN_KEY_CHECKS=0; RENAME 把 *_bak_uuid 换回主表名(引用列需另外恢复)
-- 用宝塔/整库备份恢复 + 部署旧后端包
--
-- ========== 10. 次日清理 ==========
-- DROP TABLE IF EXISTS prc_order_bill_old_uuid, prc_order_bill_bak_uuid, prc_income_bill_old_uuid, prc_income_bill_bak_uuid,
-- prc_income_bill_fee_old_uuid, prc_income_bill_fee_bak_uuid, prc_pay_bill_old_uuid, prc_pay_bill_bak_uuid,
-- prc_pay_bill_fee_old_uuid, prc_pay_bill_fee_bak_uuid, prc_order_bill_ext_bak_uuid;
-- DROP TABLE IF EXISTS prc_order_bill_old_uuid, prc_income_bill_old_uuid,
-- prc_income_bill_fee_old_uuid, prc_pay_bill_old_uuid, prc_pay_bill_fee_old_uuid;
-- DROP TABLE IF EXISTS mig_map_order_bill, mig_map_income_bill, mig_map_income_fee, mig_map_pay_bill, mig_map_pay_fee;
--
-- 冒烟:1)新建/重计费 2)出应收 3)查应付费用 4)旧 AR 明细关联订单