Skip to content

v1.16.0 — 后台新增「数据迁移」控制台

Latest

Choose a tag to compare

@SunGreatSage SunGreatSage released this 07 Sep 07:08
· 1 commit to main since this release

v1.16.0

🚚 后台新增「数据迁移」控制台:1.x → 2.0 迁移的源端入口

ZCard 2.0(Go 重写版,仓库 NovaWorks/zcard-next)已具备
一键全量数据迁移能力zcard migrate-from-v1 子命令,P0-P6 全阶段交付)。本版本为
1.x 侧补上运维入口:后台「系统设置 → 数据迁移」页面,覆盖迁移前自检、命令生成、
密钥包导出三件事——站长不需要登录服务器翻配置文件即可完成迁移准备。

1. 新页面:系统设置 → 数据迁移

  • 源端自检(只读,不改任何数据):
    • APP_KEY / 卡密加密钥匙可用性检测(含后台配置与 .env 双来源解析);
    • 卡密抽样:随机抽取 10 条做密文/明文形态识别与解密验证(密钥错配当场暴露);
    • 数据库版本探测:金额列停留在「元」小数形态(v1.9 之前的旧库)会直接标红,
      提示先升级 1.x 再迁移;
    • 数据规模概览(用户/商品/卡密/订单/支付/流水行数)与在途订单提醒
      (待付款订单/待确认支付计数——切换窗口前排空依据);
    • 软删除数据提示(迁移会带上软删数据,站长知情)。
  • 命令生成:按本站配置自动生成 2.0 侧执行命令(dry-run 演练 / 正式迁移 /
    主站先行 --phase 0-5 / 迁移后校验 --verify-only),一键复制;
    附五步切换流程指引(准备 2.0 → 密钥包 → 演练 → 切换窗口 → 回滚预案)。
  • 密钥包下载:导出 zcard-v1-migrate.env(含 APP_KEY、卡密钥匙、时区、数据库连接),
    复制到 2.0 服务器供 --old-env 使用;下载需二次确认,页面明示 600 权限与迁移后删除。

2. 新增 API(admin 角色守卫 + 审计)

端点 用途
GET /api/admin/migration/preflight 源端自检(密钥/卡密抽样/版本探测/规模/在途单)
GET /api/admin/migration/command 2.0 侧命令与切换清单
GET /api/admin/migration/keys 密钥包导出(含库凭据,仅管理员)

3. 配套交付

  • docs/重构/generate-v1-crypto-fixtures.php:用真实 Laravel 加密器生成 golden vector
    测试样本(已用于钉死 2.0 侧解密兼容性),供后续回归;
  • docs/重构/数据迁移工具开发计划.md:逐表字段映射规格与七阶段交付日志
    (settings 首批映射、状态映射总表、加密口径附录等)。

4. 迁移能力速览(2.0 侧已交付,供规划参考)

  • 覆盖:设置/货币/会员等级、用户(密码原样可用)与管理员、商品目录、卡密
    (换算法重加密+防重)、订单五表(老单号可继续查询)、支付/充值/优惠券、
    余额流水与对账差异清单、分站分批补迁、供货商、媒体文件、访问/审计日志;
  • 幂等可重跑(中断续跑、重跑即增量);--dry-run 预检、--verify-only 事后校验;
  • 100 万卡密实测 6 分 41 秒零失败;全程只读 1.x 数据库。

升级说明

  • 常规升级:后台「系统设置 → 在线更新」或 git pull && composer install
    本版本无数据库结构变更、无配置迁移;
  • 前台/后台前端产物已随包更新(public/admin),无需 Node 环境。