3.3 KiB
3.3 KiB
P1-1b:CRM 产品
前置:P1-1a 产品分类;P0 用户 mapping
全局 ID:05-id-preservation-policy.md
下游:客户/报价/合同等引用crm_product.id
1. 目标
将 sx crm_product 写入门户 crm_product,并生成:
docs/data-migration/mappings/crm_product_id_mapping.csv
数据来源:仅从原 CRM(sx.crm_product)全量迁入 del_flag=0 行;不合并地磅 cargos、报销产品表。
2. 源数据规模(live sx,2026-07-12)
| 指标 | 值 |
|---|---|
| 有效产品行 | 239 |
| 产品分类(已迁) | 5 |
| sx.sql 快照 INSERT | ~240(与 live 差 1 条删除/滞后) |
3. 执行前检查
-- 目标:应为空(首次执行)
SELECT COUNT(*) FROM crm_product WHERE tenant_no='shanxia2.0' AND del_flag=0;
-- 分类已就绪
SELECT COUNT(*) FROM crm_product_category WHERE del_flag=0;
-- 源
SELECT COUNT(*) FROM crm_product WHERE del_flag=0;
确认文件存在:
docs/data-migration/mappings/user_mapping_result.csvdocs/data-migration/mappings/crm_product_category_id_mapping.csv
4. 执行步骤
| 步骤 | 操作 | 状态 |
|---|---|---|
| 1 | 备份目标库 mysqldump shanxia2.0 |
跳过(执行前 0 行) |
| 2 | migrate_crm_product.py --dry-run |
✅ 2026-07-12 |
| 3 | 审阅 dry-run(239 行、category_id 抽样) | ✅ |
| 4 | 正式执行 + --mapping-out |
✅ 插入 239 行 |
| 5 | SQL + 界面验收 | SQL ✅(脚本);界面待人工 |
| 6 | 追加 logs/ 批次记录 |
✅ logs/2026-07-12-2055-product.md |
4.1 命令
cd backend
venv/bin/python scripts/migrate_crm_product.py --dry-run \
--env-file .env.production \
--user-mapping ../docs/data-migration/mappings/user_mapping_result.csv
venv/bin/python scripts/migrate_crm_product.py \
--env-file .env.production \
--user-mapping ../docs/data-migration/mappings/user_mapping_result.csv \
--mapping-out ../docs/data-migration/mappings/crm_product_id_mapping.csv
5. 字段映射速查
| 源 | 目标 | 说明 |
|---|---|---|
| id | id | 原样保留 str(source_id) |
| category_id | category_id | 原样保留 str(source_id) |
| product_no | product_no | 直接 |
| name | name | 直接 |
| cost | cost_price | 重命名 |
| status | status | 保持 on/off |
| is_toxic / is_explosive | 默认 0 | 源表无字段 |
| tenant_id | tenant_no | shanxia2.0 |
| create_by | create_by | user_mapping;1→admin |
6. 验收标准
- 目标有效行数 = 源有效行数(239)
- mapping CSV 239 行,
source_id=new_id - 抽样
category_id落在已迁 5 个分类 id 内 - 产品列表页正常展示、分类全路径正确(待人工)
7. 与地磅的关系(说明)
地磅业务表(计划/出入库/地磅单)存的是货物名称文本,无 cargo_id / product_id 外键;门户 2.0 地磅方案 A 继续存名称文本,CRM 产品仅作下拉来源。详见迁移问答与 docs/db-migration/00-migration-plan.md。
8. 二次移植说明
- 保留历史
logs/与 mapping CSV,新批次只追加 - 默认 skip 已映射
source_id;源数据变更用--update - 勿
--force清库;增量只迁 mapping 中不存在的源行