迁移脚本的一些问题修复
This commit is contained in:
@@ -42,7 +42,7 @@ scripts/migration/
|
||||
|
||||
把两个 CSV 放到 `resources/` 下(命名为 `cards.csv` / `devices.csv`):
|
||||
|
||||
- **cards.csv**:`iccid_19` 必填(所有卡前 19 位),`iccid_20` 视运营商必填或留空,`is_industry` 可选
|
||||
- **cards.csv**:`iccid_19`/`iccid_20` 至少填一个;仅填 `iccid_20` 时脚本自动派生前 19 位,但奇成主表只按 20 位精确查询;`is_industry` 可选
|
||||
- **devices.csv**:`virtual_no` 必填,`sim_iccid_*` 引用 `cards.csv` 中的 ICCID(可填 19 或 20 位)
|
||||
|
||||
字段说明详见 [`resources/README.md`](resources/README.md)。
|
||||
@@ -112,7 +112,9 @@ migration_user_id: 0 # 后台超级管理员 ID,作为
|
||||
migration_batch_no: "MIGRATION-QICHENG-YYYYMMDD" # 本次迁移批次号,线上每批必须唯一
|
||||
|
||||
carriers: # 由 scan_legacy 自动发现 legacy_*,你只填 target_*
|
||||
- legacy_category: 9
|
||||
- legacy_account_id: "72493DB64A2A4F01B5E59E49D58A2A34"
|
||||
legacy_account_name: "联通10-1"
|
||||
legacy_category: 9 # 奇成运营商大类,仅作辅助判断
|
||||
legacy_category_name: "中国联通"
|
||||
target_carrier_id: 1585 ← 必填:新库 tb_carrier.id
|
||||
target_carrier_type: CUCC ← 必填:CMCC/CUCC/CTCC/CBN
|
||||
@@ -203,6 +205,10 @@ real_used_mb = total_bytes_cnt / (1 + flow_add_discount / 100)
|
||||
| `data_limit_mb` | 始终 `real_data_mb`(真总量) |
|
||||
| `data_usage_mb` | `LEAST(real_used_mb_floor, virtual_total_mb_snapshot)`(防卫上限) |
|
||||
|
||||
### 6.5 设备绑定卡的套餐归属
|
||||
|
||||
设备上的卡在新系统运行态会按设备维度判断有效套餐和复机条件,因此迁移时只用设备当前槽位卡(默认 `sim_iccid_1`)作为奇成套餐来源,生成一条 `usage_type=device`、`device_id=设备ID` 的套餐使用记录。其他槽位绑定卡不重复生成主套餐,避免同一设备出现多条并列生效主套餐。
|
||||
|
||||
## 7. 重要约束
|
||||
|
||||
- ❗ 所有奇成查询走 `SET TRANSACTION READ ONLY`,严禁误写。
|
||||
@@ -215,7 +221,7 @@ real_used_mb = total_bytes_cnt / (1 + flow_add_discount / 100)
|
||||
| 现象 | 排查 |
|
||||
|------|------|
|
||||
| `scan_legacy.py` 报 `pymysql 缺失` | `pip install -r requirements.txt` |
|
||||
| `errors.csv` 出现 `carrier_not_in_mapping` | `mapping.yaml.carriers` 没覆盖到这个 category,重跑 `scan_legacy.py` 自动补 |
|
||||
| `errors.csv` 出现 `carrier_not_in_mapping` | `mapping.yaml.carriers` 没覆盖到这个 account_id/account_name,重跑 `scan_legacy.py` 自动补 |
|
||||
| `errors.csv` 出现 `carrier_target_missing` | `mapping.yaml.carriers` 里有这一项但 `target_*` 还是 null,手动填 |
|
||||
| `errors.csv` 出现 `not_in_legacy` | 该 ICCID 在奇成 `tbl_card` 查不到,业务方确认 |
|
||||
| `errors.csv` 出现 `legacy_duplicate` | 同一 `iccid_19` 在奇成命中多条 `tbl_card`,业务方人工确认是哪张物理卡 |
|
||||
|
||||
Reference in New Issue
Block a user