HandyCafe Docs
owner it-admin

如何从旧版安装迁移

本指南会将您现有的 HandyCafe V3 或 V4 旧安装数据导入现代 HandyCafe 服务端。迁移过程对源数据是非破坏性的:原始文件不会被修改或删除。

数据库迁移仅在 Windows 上运行。旧版客户端按原始协议连接的运行时支持则可在所有平台上使用(参见旧版客户端设置)。

您需要准备什么

  • 一台 Windows 机器,旧版安装和现代 HandyCafe 服务端都位于同一系统上,或者可以访问旧版数据库文件。
  • HandyCafe Server 的管理员访问权限。
  • 已停止运行的旧版服务端。迁移时,源数据库不应处于写入状态。
  • 至少与旧版数据库大小相当的可用磁盘空间(用于新的 HandyCafe 数据库副本)。
  • 10 到 30 分钟不中断的时间。大数据集的迁移可能需要几分钟。运行期间请勿关闭 HandyCafe。

第 1 步:停止旧版服务端

打开旧版 HandyCafe 服务端应用。停止所有时段并退出程序。如果旧版服务端是以 Windows 服务运行,请在 services.msc 中停止该服务。

预期结果: 旧版服务端进程已经不再运行,数据库文件也没有被占用。


第 2 步:打开旧版客户端设置页

  1. 启动 HandyCafe。
  2. 在侧边栏中打开 设置
  3. 点击 旧版客户端
  4. 滚动到 数据库迁移 区域。

预期结果: 如果系统检测到旧版安装,页面会显示安装路径、数据库路径、服务端版本和 INI 文件数量。如果没有检测到,页面会显示“未检测到旧版安装”。此时请确认旧版文件确实位于诸如 Program Files\HandyCafeC:\HandyCafe 这样的标准位置。


第 3 步:检查检测到的安装

确认检测出的值与您已知的旧版安装相符:

字段 检查内容
安装路径 指向正确的 HandyCafe 文件夹。
数据库路径 指向安装目录中的旧版数据库文件。
服务端版本 与您的旧版服务端版本一致(例如 3.4.01 或 4.0.10)。
INI 文件数量 非零。正常安装通常会有多个用于不同配置的 INI 文件。

如果任何字段不正确,请关闭 HandyCafe、修复安装,然后重新打开。


第 4 步:检查编码字段

在运行迁移之前,请确认运行时协议区域中的 编码 字段已针对源数据设置正确。这个字段就在同一设置页的上方。

源地区 推荐编码
土耳其 cp1254
西欧(英语、法语、德语、西班牙语、意大利语、葡萄牙语) cp1252
其他 cp1254(服务端会把它作为默认回退值)

如果您更改了编码,请先保存再继续。

预期结果: 源字符串在迁移期间会被正确解码,从而避免出现 completed_with_warnings 结果。


第 5 步:开始迁移

  1. 点击 开始迁移
  2. 会打开一个进度弹窗,显示当前阶段和已处理的行数。
  3. 不要关闭 HandyCafe,也不要让电脑进入睡眠。
  4. 等待完成。小数据集通常不到一分钟即可完成。较大的数据集可能需要 5 到 10 分钟。

预期结果: 进度弹窗关闭,状态变为 completedcompleted_with_warnings。系统会弹出通知,确认这次运行已经完成。


第 6 步:查看已迁移计数

完成后,页面会显示已迁移记录数:

计数 含义
会员 已导入的顾客记录。
定价 已导入的价格表和排期条目。
商品 已导入的商品目录条目。
订单 已导入的历史订单。
交易 已导入的账本条目。
日志 已导入的审计与警告日志。
警告 导入过程中被跳过的记录。仅在状态为 completed_with_warnings 时显示。

点击“详情”展开项可以查看完整明细。请根据您的预期检查这些计数是否合理。

预期结果: 如果源数据中这些表都有内容,那么会员、商品、订单和交易四类至少应当显示非零计数。


第 7 步:处理警告(如有)

如果状态为 completed_with_warnings,请展开警告列表并查看被跳过的记录。

常见警告及其处理方式如下:

警告 原因 处理方法
编码解码错误 源文本包含无法使用当前编码解码的字节。 运行撤销迁移,修改编码字段以匹配源地区,然后重新运行迁移。
日期格式错误 某条旧版记录包含无效时间戳(例如 0000-00-00)。 这些会被安全跳过,无需处理。
重复键 某条记录的标识符已经存在于 HandyCafe 中。 如果这是一次无意的重复迁移,请先撤销迁移,然后重新运行迁移;如果您是在合并数据库,则可以接受该跳过。

预期结果: 您要么接受这些可知的警告损失,要么修复底层问题后重新运行。


第 8 步:抽查导入数据

在退役旧版服务端之前,请手动验证每种记录类型的样本。

  1. 在侧边栏打开 会员。搜索一位您在旧系统中认识的会员,确认姓名、余额和联系信息。
  2. 打开 设置 > 定价。确认小时费率与旧版排期一致。
  3. 打开 商品。确认商品名称和价格。
  4. 打开最近某一天的 财务报表。确认总计与旧系统中的预期一致。

预期结果: 随机抽查的样本与旧版源数据一致。如果某条记录有误,请记录下来。轻微的格式差异是正常的。若出现明显数值不一致,则很可能是编码或数据完整性问题,值得在正式上线前进一步排查。


第 9 步:启用旧版客户端运行时支持(可选)

如果您希望现有的 V3 或 V4 客户端机器在过渡期间继续接入,可以现在启用运行时协议。

  1. 滚动回旧版客户端设置页顶部。
  2. 打开 启用旧版客户端支持
  3. 确认侦听端口(UDP 710、TCP 712、文件传输 717)不会与网络中的其他服务冲突。
  4. 点击保存。

预期结果: 局域网中的旧版客户端会在 5 到 10 秒内出现在管理面板中。有关如何在面板中管理它们,请参阅旧版客户端


如何撤销迁移

如果迁移结果不符合预期,您可以将其完全回滚。原始旧版数据库不会被修改。

  1. 打开 设置 > 旧版客户端
  2. 滚动到数据库迁移区域。
  3. 点击 撤销迁移
  4. 在对话框中确认。

所有已迁移的行都会从 HandyCafe 中删除。状态会回到 never。之后您可以修正底层问题(编码、源数据清理等),再运行“开始迁移”。


如何重新运行迁移

重新运行会使用源数据中的最新内容替换已迁移的数据。

  1. 打开 设置 > 旧版客户端
  2. 点击 重新运行迁移(在第一次完成运行后,该按钮会从“开始迁移”改名)。
  3. 流程与初次运行完全相同。

只要需要,您可以安全地多次重新运行。它不会重复写入数据,因为它会替换已有的迁移输出。


应避免的常见错误

  • 在旧版服务端仍在运行时执行迁移。 源数据库可能被锁定,或者包含部分写入。请始终先停止旧版服务端。
  • 忽略编码字段。 使用错误编码会损坏会员姓名和日志消息。事后修复必须先撤销迁移,再重新运行迁移。
  • 在迁移过程中关闭 HandyCafe。 运行会被中断,并且只写入部分数据。恢复通常需要撤销迁移。请务必让进度弹窗完成。
  • 跳过抽查步骤。 只看记录数而不验证样本数据,很容易忽略地区编码或四舍五入错误之类的细微问题。
  • 过早删除旧版安装。 在迁移后至少保留源文件一个完整结算周期。如果月报中出现差异,您还能参考原始记录。
  • 没有备份就开始迁移。 在第一次迁移前,请先复制旧版安装文件夹。虽然迁移不会修改源数据,但磁盘问题或意外仍有可能发生。备份是便宜而有效的保险。