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 环境。