RT 迁移工具¶
RT 迁移工具把 Request Tracker 中的队列、工单(含完整历史和附件)、人员、用户组、自定义字段和文章复制到 Specivo。它以只读方式直接读取 RT 的数据库,并生成一个 Specivo 导入包:一个由普通文件组成的文件夹(或 .zip)。随后由 Specivo 检查并加载这个导入包。
RT database --SELECT--> specivo-rt-migration --> import bundle --> Specivo
(PostgreSQL or MySQL) (this tool) (files) (validate, dry run, import)
该工具不会改动 RT 中的任何内容。它在一个只读事务中完成读取,因此导入包反映的是 RT 在某一时刻的状态,即使期间仍有人在 RT 中工作也不受影响。
与 Best Practical 无关联
本工具与 Best Practical Solutions 没有任何关联,也未获其认可。“Request Tracker” 和 “RT” 是 Best Practical Solutions, LLC 的商标,此处仅用于说明本工具读取的是哪个系统。
前提条件¶
| 要求 | |
|---|---|
| Specivo | 0.11.0 或更高版本,用于加载导入包(导入包格式 1.0)。 |
| RT | 4.4、5.0 或 6.0,数据库为 PostgreSQL、MySQL 或 MariaDB。参见 RT 版本。 |
| 运行工具的机器 | Python 3.12 或更高版本,能通过网络访问 RT 的数据库,并有足够磁盘空间存放附件。 |
| 数据库账户 | 能对 RT 的表执行 SELECT 即可,不需要其他权限。 |
| RT 的外部存储 | 仅当 RT 通过 %ExternalStorage 配置并使用 Disk 后端把附件移出数据库时才需要:对该目录的读取权限。 |
迁移流程¶
- 安装工具。
- 导出:先试导出每个队列中的少量工单,再导出整个 RT 实例或逐队列导出。
- 在 Specivo 中检查、演练并加载导入包。
- 阅读报告。工具无法迁移的内容都会计入导入包的清单(manifest),Specivo 也会在导入报告中打印出来。参见哪些内容不会迁移。
- 正式切换前再导出一次,使用相同的
--instance,然后加载新的导入包,以补上这期间的变更。
文档目录¶
Specivo 一侧的导入操作参见 Specivo 用户指南中的从其他项目管理系统导入。导入包格式的规范见 Specivo 仓库中的 docs/import-bundle/v1.md。