How do you configuration-manage your RT install?

Hi all

I’m becoming more and more uncomfortable with the way the RT install I’m
running is a mixture of config files and configuration in the database.

I can’t easily version what’s in the database in a way that permits sane
and simple change tracking and rollback without affecting the ticket
data too. Sure, I can attach database level auditing to scrips, etc, but
it’s a rather crude way to manage things - especially as RT doesn’t draw
a strong distinction between configuration and operational data.

I’m wondering how other RT users handle things like reproducing an RT
install from scratch on an empty DB for testing extensions, reproducing
bugs on a different version, etc.

Do you just do it on an ad-hoc basis as-required? Write custom scripts
in the form used by /opt/rt4/etc/upgrade/x/content to feed into RT’s
upgrade tool? Write your own scrips that use the RT APIs to set things
up? Load a dump of your live DB and update it each time?

I’m leaning toward taking the upgrade script approach. That way I can
test each version of our tracker on a staging copy of the production
instance then reproducibly apply the changes to the production
machine(s). Anybody else done this? If so, any comments on your
experience doing so?

Craig Ringer
PostgreSQL Development, 24x7 Support, Training & Services