RT unification (merging multiple RT instances)

Hi All,

Within my sub-organization, there were recently four distinct RTs running in
various departments. We’re making an effort to unify these. So far,
departments have been willing to abandon their ticket databases to move.

This is no longer the case. So, I’m looking at “unifying” two separate RTs
by merging their data. We need a script that could migrate tickets from one
RT to another without losing data.

Considering the three options of using bin/rt, the API, or native db dump
and a data massage tool, I think that the API is the better (re-usable,
smaller chance of horribly breaking stuff, etc) route.

Is there an option that I’m missing? Is there a (small) chance that someone
already has an excellent perl script that Google doesn’t know about? Any
words of advice?

Much Thanks,

Isaac Vetter
Purdue University

P.s. This project would be much, much easier if the API was even minimally
documented. Yes, I appreciate the POD documentation, but that’s module
documentation. The fact that something like this:
http://www.cpan.org/authors/id/A/AH/AHARRISON/scripts/rt-class-map-1.3.pl
Is necessary at the end-user level is pretty intimidating.

smime.p7s (2.37 KB)

Hi All,

Within my sub-organization, there were recently four distinct RTs
running in
various departments. We’re making an effort to unify these. So far,
departments have been willing to abandon their ticket databases to move.

This is no longer the case. So, I’m looking at “unifying” two separate
RTs
by merging their data. We need a script that could migrate tickets from
one
RT to another without losing data.

Isaac,

I’m curious - are all the RTs the same version? And how are you going to
deal with overlapping ticket numbers?

Steve

Stephen Turner
Senior Programmer/Analyst - SAIS
MIT IS&T

Hi Stephen;

Thanks for your response.

Within my sub-organization, there were recently four distinct RTs
running in
various departments. We’re making an effort to unify these. So far,
departments have been willing to abandon their ticket databases to move.

This is no longer the case. So, I’m looking at “unifying” two separate
RTs
by merging their data. We need a script that could migrate tickets from
one
RT to another without losing data.

I’m curious - are all the RTs the same version? And how are you going to
deal with overlapping ticket numbers?

Yeah. The RT’s all the same version, that’s the easy part. Overlapping
tickets id (and attachments ids and transaction ids and user ids and …) is
/the/ problem. Otherwise, it’d be a relatively simple sql insert dump.

To add insult to injury, we need to track ticket numbers that get changed,
such that urls to the “old” RT can be translated to their location in the
new “RT” via a custom web script.

Once someone had figured out how to use the API, I don’t /think/ that this
would be such a difficult thing:

  1. Get all queues, tickets, transactions, attachments, users, etc from old
    RT. Stores these in a perl structure.
  2. Switch connections to the new RT.
  3. Loop through all of the above objects, inserting and modifying.

My essential question is: Is anyone willing to share code that does
something like this? Even just examples of actually using the API would,
imho, be incredibly useful to the community.

Much Thanks,

Isaac Vetter

smime.p7s (2.37 KB)