# Migrate from Request Tracker (RT) to Specivo without losing your history

Request Tracker (RT) is a ticket system that people keep for a long time, and for good reason. It is flexible, it is free, and many installations have run for years with little attention. But sooner or later most RT admins face the same job: an upgrade. If you are weighing that upgrade, it is a fair moment to ask where your ticket history should live next.

Specivo now has an RT migration tool that reads your RT database, read-only, and brings your tickets and their history across. This article explains why teams move, what comes with them, what does not, and how to try it without risk.

## Why RT teams start looking around

Our research into what RT users say in public forums and discussions points to a clear pattern. Few people complain about using RT. Many complain about running it.

- **Installs and upgrades.** RT runs on Perl and CPAN. RT's own upgrade guide recommends a fresh install plus a database import rather than an in-place upgrade. Forum threads describe upgrades that took weeks, and sites that stayed on 4.x for years.
- **Customisation that needs Perl.** Scrips, Mason overlays and local extensions do the job, but they have to be kept up and, for RT 6.0, often rewritten.
- **Mail plumbing.** Fetching mail from Microsoft 365 with OAuth is one of the longest-running threads on the RT forum.
- **Single sign-on, reporting and time tracking.** People ask for them often, and they usually need extensions or work in the database.

None of this makes RT a bad tool. It is maintained, and the people who use it praise its reliability and its focus. The point is narrower: when an upgrade means redoing customisations anyway, comparing destinations first costs little.

## The fear that stops most moves: losing history

Teams that left RT in the past often left their history behind. OpenSSL, for one, [moved to GitHub](https://mirror.openssl-library.org/post/2016-10-12-f2f-rt-github/) and did not carry over old closed tickets. Other exits kept RT running as a read-only archive, or converted only open tickets. We found no supported RT importer in the help desk and tracker products we looked at. Often the choices are the API, custom code, or a fresh start.

That is the gap this tool fills. Years of closed tickets are the record of why things are the way they are. Losing them is a real cost.

## What Specivo offers

Specivo is a project tracker and knowledge base that you run yourself.

- **Runs where you put it.** Install it with [Docker](https://specivo.io/self-host-specivo-docker/) on a server you control, including [air-gapped networks](https://specivo.io/docs/specivo/install/air-gapped/). No Perl or CPAN to maintain: an upgrade is a new container image.
- **Issues, wiki and time tracking together.** Your tickets, your Articles and the hours spent on them sit in one place.
- **Your AI, your choice.** Use a cloud model, a local one, or none. AI agents work through the same permissions as people.
- **Nothing paywalled.** Every feature is in the self-hosted product.

## What the tool carries over

The tool reads RT 4.4, 5.0 and 6.0 on PostgreSQL, MySQL or MariaDB. It changes nothing in RT.

- **Queues** become projects. A disabled queue is archived.
- **Tickets** become issues, with status, priority, owner, dates and the first message as the description.
- **Correspondence and comments**, in order, with the full history of field changes. Replies and private comments stay distinct.
- **Attachments**, including inline images and files RT moved to disk storage.
- **Time worked** becomes time entries.
- **Links:** parent and child, depends on, refers to. References such as "ticket 123" in text become links to the new issue.
- **Merged tickets** are folded into the ticket they were merged into, so their messages stay together and old numbers still lead somewhere.
- **Custom fields** on tickets, with their history.
- **People, groups and rights** become users, groups and project roles.
- **Articles** become wiki pages, with every revision.

The details are on the [carried over](https://specivo.io/docs/rt-migration-tool/carried-over/) page of the documentation.

## What it deliberately does not carry

RT admins are right to distrust a tool that claims to move everything. This one lists what it leaves out. Every gap is counted in the import report, so nothing disappears silently.

- **Automation:** scrips and templates.
- **Things Specivo has no model for:** assets, approvals, reminders, service levels, saved searches and dashboards.
- **Passwords.** Everyone sets a new one.
- **Files on private comments.** Specivo attachments have no private flag, so these files are left out unless you ask for them.
- **Everyone rights.** Rights granted to RT's Everyone group never make a project public. The report names them, queue by queue, so you decide.

The full list is on [what is not carried over](https://specivo.io/docs/rt-migration-tool/not-carried-over/).

## An honest note about email

Many people praise RT for its email-driven workflow: queues bound to addresses, replies by email, requestors who never open the web interface. Specivo does not replicate that. It has no email-in help desk, no customer portal, no service levels and no scrips.

So Specivo fits best where RT is an internal tracker for IT, operations, research or development, and where you want tickets, knowledge and time tracking in one place. If a queue is a customer-facing mailbox, keep it in RT for now. You can move the rest and leave the others untouched.

## Rehearse first, then switch

You do not have to switch in one weekend:

1. **Export** a trial of a few tickets per queue. The tool needs only a database account that can read.
2. **Validate and dry-run** the bundle in a test instance of Specivo. The dry run changes nothing.
3. **Look around** with your team, read the report, and repeat as often as you like. Queues can move one at a time, and links between them still resolve.
4. **Switch** when you are ready: stop new work in RT, run a final export, and load it into your production Specivo.

The steps are in the documentation: [install](https://specivo.io/docs/rt-migration-tool/install/), [exporting from RT](https://specivo.io/docs/rt-migration-tool/exporting/) and [loading the bundle](https://specivo.io/docs/rt-migration-tool/loading/).

## Requirements

- Specivo 0.11.0 or later, installed with [Docker](https://specivo.io/self-host-specivo-docker/).
- RT 4.4, 5.0 or 6.0 on PostgreSQL, MySQL or MariaDB.
- A read-only database account, and a machine with Python 3.12 or later that can reach the database.

The tool is open source and released as v0.1.0 on [GitHub](https://github.com/specivo/rt-migration-tool).

## Try it on one queue

Install Specivo on a spare server, export one real queue, and see how your own history looks on the other side. If you are also moving from other systems, there are migration paths for [Jira](https://specivo.io/migrate-from-jira/) and [Redmine](https://specivo.io/migrate-from-redmine/) too.

- [RT migration tool documentation](https://specivo.io/docs/rt-migration-tool/)
- [Install Specivo with Docker](https://specivo.io/self-host-specivo-docker/)
- [Specivo user guide](https://specivo.io/docs/specivo/)

"Request Tracker" and "RT" are trademarks of Best Practical Solutions, LLC. Specivo is not affiliated with or endorsed by Best Practical Solutions.