Database integrity check?

Are there any proven techniques for cleaning up an old RT database before
migration/upgrade?

We’ve been running an old 3.x installation for about two years now (12,000
tickets), and want to set up a new box with the latest version of RT and
mysql4/INNODB.

But I’m hesitant about migrating our database directly… we’ve had
intermittent performance problems and quite a few crashes over the years,
and I’m sure our data violates the schema relationships in some places.

What would be great would be some sort of export tool, and a smart import
with schema checking. The dumpfile upgrade from rt2 to rt3 seemed to do
something like that, but I haven’t found a similar tool for rt3 to rt3. Or
a utility to scan the RT database for violations of the data model and
remove any mismatching data. True referential integrity would be a godsend,
but I know that’s still a ways off.

On a related not, I was thinking it might be a good idea to simplify our
database by purging deleted tickets… is the RT::Shredder utility safe to
use? Or is it missing parts of the data model (like the purgedead.pl script
is).

Thanks,
-Garret

Garret Gengler wrote:

Are there any proven techniques for cleaning up an old RT database before
migration/upgrade?

We’ve been running an old 3.x installation for about two years now (12,000
tickets), and want to set up a new box with the latest version of RT and
mysql4/INNODB.

But I’m hesitant about migrating our database directly… we’ve had
intermittent performance problems and quite a few crashes over the years,
and I’m sure our data violates the schema relationships in some places.

What would be great would be some sort of export tool, and a smart import
with schema checking. The dumpfile upgrade from rt2 to rt3 seemed to do
something like that, but I haven’t found a similar tool for rt3 to rt3. Or
RT has own algorithms for updates.
a utility to scan the RT database for violations of the data model and
Exactly this functionality I’m integrating into next release of the
RTx::Shredder.
remove any mismatching data. True referential integrity would be a godsend,
but I know that’s still a ways off.

On a related not, I was thinking it might be a good idea to simplify our
database by purging deleted tickets… is the RT::Shredder utility safe to
use? Or is it missing parts of the data model (like the purgedead.pl script
is).
purgedead script is known to be “broken”. It doesn’t break RT, but leave
crap in DB.

As I think/hope(choose whatever you want :)) that RTx::Shredder do this
task better.

a utility to scan the RT database for violations of the data model and
remove any mismatching data.

Exactly this functionality I’m integrating into next release of the
RTx::Shredder.

Sounds great… Any idea when you’ll be ready to release it?

On a related not, I was thinking it might be a good idea to simplify our
database by purging deleted tickets… is the RT::Shredder utility safe
to
use? Or is it missing parts of the data model (like the purgedead.pl
script
is).

purgedead script is known to be “broken”. It doesn’t break RT, but leave
crap in DB.

As I think/hope(choose whatever you want :)) that RTx::Shredder do this
task better.

Alright, RTx::Shredder it is. :slight_smile: