
很多团队把项目管理系统私有化部署到内网、系统也顺利跑起来之后,会卡在同一个问题上:旧系统里积累了几年的需求、任务、Bug、用例和文档,怎么搬进新系统?直接复制粘贴行不通,字段对不上、账号对不上、附件找不到,最后容易变成「新系统上线了,历史记录却还得回旧系统查」。
这篇文章按可执行的顺序讲清三件事:迁移前要准备什么,不同来源的数据怎么导进来,导完之后怎么确认没丢。私有化部署的好处是数据库和附件都在企业自己手里,备份、导出、回退都能自主操作;代价是版本匹配、环境依赖和迁移窗口同样要自己扛,没有云服务商兜底。下面按场景拆开讲。
先分清场景:搬迁、导入,还是两者叠加
历史数据迁移听起来是一件事,实际是三类不同任务。判断标准很简单:数据从哪来,要到哪里去。
| 场景 | 典型触发 | 迁移对象 | 关键差异 |
|---|---|---|---|
| 整站搬迁 | 换服务器、换机房、调整部署方式(如改为容器) | 整个数据库加附件目录 | 要求版本一致,必须停写 |
| 外部数据导入 | 从 Jira、Excel 或其他工具切换到禅道 | 需求、任务、Bug、用例等业务数据 | 需要用户映射和字段映射 |
| 两者叠加 | 既换环境,又换工具 | 上面两部分 | 需明确先后顺序,避免导完再搬丢失关联 |
三类任务的准备工作和风险点并不一样。整站搬迁的核心风险是版本不匹配和附件丢失,外部数据导入的核心风险是字段错位和关联关系断裂。先对上自己属于哪类,后面的步骤才不会做反。

迁移前必须完成的四项准备
盘点数据范围与体量
先列清单,再动手。要盘点的内容包括:有哪些数据类型(需求、任务、Bug、用例、文档、附件)、各自的条数、附件总体积、时间跨度。
盘点同时做清理。旧系统里的测试数据、重复记录、已离职账号,搬过去只会增加后续维护成本。官方文档在讲 Jira 导入时也建议,迁移前删除不再使用的账号、问题类型和属性,能提高配置效率、缩短导入所需时间。
建立用户与字段映射
要做两件事:人的对应和字段的对应。用户映射优先靠邮箱一致,旧系统账号与禅道账号的邮箱对不上,导入后负责人就会错位,甚至变成空值。
字段映射建议做成一张对照表,写清「旧系统字段、新系统字段、转换规则」。状态、优先级、问题类型这类枚举值最容易出问题,因为两侧取值集合通常不同,需要提前定义转换规则,而不是导入后再手工修。
完成一次完整备份,并约定停写窗口
迁移前必须备份,且备份要同时包含数据库和附件,只做其中一个都不完整。
以禅道一键安装包为例,官方文档给出的做法是:备份前先停止 Apache 和 MySQL 服务,Windows 环境备份整个 xampp 目录,Linux 环境备份 /opt/zbox 目录。数据库和附件两类数据尤其不能漏。
导入或搬迁期间要停止使用系统,避免迁移过程中产生新数据,造成新旧记录对不上。
核对版本、权限与运行环境
私有化部署意味着升级和兼容性要自己负责。需要确认三点:新旧环境版本是否一致、PHP 与数据库版本是否满足要求、执行迁移的账号是否具备管理员权限。版本不一致是整站搬迁中最常见的失败原因之一。
从已有研发工具导入历史数据:以 Jira 为例
从 Jira 切换到禅道是近两年高频的迁移场景,也是目前文档相对完整的路径。禅道提供了三种导入方式,选哪种取决于旧系统是本地部署还是云版本,以及能否拿到数据库。
三种导入方式的适用条件
| 导入方式 | 适用场景 | 大致取舍 |
|---|---|---|
| 数据库导入 | 旧系统本地部署、能拿到数据库 | 数据最完整,保留关联关系;需要数据库权限,耗时较长 |
| 文件导入 | 云版本,或拿不到数据库 | 操作门槛低;可能丢失部分关联信息 |
| 接口导入 | 需要走接口方式迁移 | 配置方式与数据库、文件导入不同,需按版本文档准备 |
版本前提要提前确认。按官方文档说明,从禅道开源版 21.6 起支持 Jira 的数据库导入和文件导入,22.1 起支持接口导入;Jira 侧,数据库导入仅支持 8.8 及以上版本,低于该版本建议先升级再备份数据库。如果还要一并导入 Jira 中新增的问题类型、自定义字段和工作流,需要升级到企业版 11.6 及以上。
导入前把 Jira 数据整理干净
这一步直接决定导入效率:
- 删除不再使用的账号,并保证 Jira 与禅道的账号、邮箱一致,便于自动匹配
- 删除未使用的问题类型和属性,减少配置工作量
- 评估项目状态。已归档项目导入后会变成「已关闭」,回收站中的项目不会被导入,其余项目导入后状态为「进行中」。因此要先想清楚哪些项目真要迁
在禅道后台执行导入
入口在后台的数据导入功能中,选择从数据库导入,再按 Jira 是本地部署版本还是云版本选择对应方式(可参考 Jira 国产化替代方案)。
导入前务必先备份禅道数据库;导入过程中停止使用禅道,避免正在写入的数据丢失。
从 Excel/CSV 批量导入需求、任务、Bug 与用例
不是所有数据都来自 Jira。很多团队的存量数据散落在 Excel、内部工单表或自研工具里,这类数据更适合走文件导入。
通用流程是四步:下载对应对象的导入模板,按字段整理数据,校验必填项和枚举值,上传导入并处理失败行。
几个容易忽略的点:
- 模板字段以当前版本为准。 需求、任务、Bug、用例列表通常都提供导入或导出入口,模板字段会随版本调整,用错模板会导致整批失败。
- 导入通常只完成基础字段,关联关系要补。 部分导入方式在导入后仍需手动设置负责人、关联项目等必填项,不要默认一次就能闭环。
- 用例导入支持覆盖策略。 测试用例往往是存量数据里体量最大的部分之一,禅道的测试用例管理支持通过 Excel 模板批量导入,并可在导入时选择是否覆盖重复用例,适合跨项目复用旧用例。
- 分批导入。 数据量大时按项目或按时间分批,失败时定位成本低得多。
整站搬迁:把私有化部署的系统整体搬到新环境
如果只是换服务器、换机房,数据不需要「转换」,要保证的是「搬全」。整站搬迁拼的是完整性和版本一致性。
官方文档给出的两条路径原理相同,实操顺序如下:
- 在目标服务器安装相同版本的禅道(下载安装包)
- 停止服务,确保迁移期间没有数据写入
- 备份源环境:通过后台备份功能生成备份包,或直接拷贝数据库目录和附件目录。以 /opt/zbox 部署为例,数据库目录与附件上传目录要一起拷走
- 把备份文件或目录放到目标环境的相同位置
- 在目标环境执行还原
- 登录验证,检查数据是否完整
这里要强调,版本一致是硬前提。源环境和目标环境版本不同,数据库结构可能不匹配,还原后系统甚至可能直接打不开。另外,附件目录经常被单独遗漏——数据库还原成功并不代表附件也在,文档、图片等附件需要单独核对一次。
迁移后如何验证数据是否完整
导入完成不等于迁移完成。验证要覆盖三个层次,再补两类专项检查。
| 核对层次 | 具体方法 | 通过标准 |
|---|---|---|
| 总量核对 | 对比新旧系统各对象的条数 | 条数一致,差异有记录和解释 |
| 明细抽验 | 按项目或时间抽查记录 | 标题、状态、优先级、负责人、时间等关键字段正确 |
| 关联走查 | 抽查「需求—任务—Bug—用例」链路 | 关联关系完整,相关对象之间能相互跳转 |
两类专项检查分别是附件和权限:附件抽样下载,确认能正常打开;权限抽查用户、用户组和权限分配,确认与预期一致。
总量核对能看出有没有丢,明细抽验能看出有没有错,关联走查能看出迁过来的数据能不能真正用。三项都过了,再考虑停掉旧系统。

常见坑、注意事项与回退方案
版本与兼容性
Jira 8.8 以下的数据库导入不被支持,需要先升级;禅道侧的导入能力同样有版本门槛。动手前先核对版本,比事后排查划算得多。
附件与数据一致性
附件、图片、文档常存放在独立目录,备份和迁移时容易遗漏。图片类附件还涉及存储路径,迁移后可能出现记录能打开、图片却看不到的情况。把附件单独列为一项检查项,是最省事的做法。
停产窗口与双轨过渡
迁移期间系统要停写,这个窗口需要提前和团队约好,尽量安排在非工作时间。迁移完成后,建议新旧系统双轨并行一段时间:新系统跑真实业务,旧系统留作对照,发现差异及时调整。双轨期长短取决于业务复杂度,数据量小、依赖少的项目可以短一些,大型团队要留足。
回退方案
迁移前的那次完整备份,就是回退方案。 如果导入后发现数据错乱或系统异常,直接还原到迁移前状态,定位问题后重做即可。这也是备份必须覆盖数据库和附件两部分的原因。
迁移还是双方配合的事:系统方负责迁移工具、技术方案和执行操作,企业方负责提供数据、做业务核对和确认决策。把迁移范围、时间节点和责任划分提前写清楚,出问题时才不至于互相等。
迁移本身也有成本,包括工具、人力、停产窗口和双轨期投入,做预算时把这些一并算进去,会比只看软件许可费更接近实际。关于成本构成,可以参考Scrum 敏捷开发平台的成本结构:许可、迁移、培训与长期维护。
私有化部署把历史数据迁移的主动权交回企业自己手里:备份谁做、什么时候做、导成什么样,都由自己决定。把「盘点、备份、导出、导入、验证、回退」这条线走完整,历史数据才能真正跟着业务一起进入新系统。
文章标题 :私有化部署项目管理系统如何迁移历史数据?操作指南与注意事项 ,发布者 :项目管理研究院





























