After almost 8 years of happily running RT 2.0.15 we’ve finally had
the guts to migrate to RT3.8.4. For this I had to write a few scripts
to make it faster than the tools that are available (rt-2.0-to-
dumpfile and dumpfile-to-rt-3.0).
Last week we’ve migrated, and I must say that it was relatively
painless. After much thoughts I’d like to share the code with the rest
of the world.
After migration we saw a noticeable increases in database rows on
certain tables, due to 660k tickets and 670k users:
CachedGroupMembers: 0 6m+
GroupMembers: 368 2.7m
Groups: 60 3.3m
Principals: 0 4m
Watchers: 643k 0
That scared me at first, but it’s not an issue on modern hardware. The
time taken for each of the stages you really need to do:
rewriting the original data: 26 to 48 minutes
importing into postgres: 16 to 65 minutes
recreating indexes: 11 to 35 minutes
Your mileage may vary depending on the amount of internal memory.
I’ve made my git repository readable and browsable:
I’ll be happy to answer questions or receive some critics on it.