The Bugzilla Migration Framework

Max Kanat-Alexander mkanat at
Sat Oct 24 05:42:58 UTC 2009

	I just checked in, a framework for migrating from other
bug-tracking systems to Bugzilla.

	The exciting news is that this makes it very easy to write new
migrators to migrate from any bug-tracking system to Bugzilla.

	Also, this makes migration a first-class part of Bugzilla, not part of
contrib/. This means that we will maintain the migration framework, and
the migrators themselves, and if they break, that's a regression.

	The first system implemented is GNATS, because (a) a client hired me to
write a modern Bugzilla->GNATS migrator (which was actually the whole
reason I wrote this framework) and (b) GNATS is dead (as far as I know)
and so we won't have to change anything about the migrator in the future.

	The GNATS migrator is Bugzilla::Migrate::GNATS, if you want to see a
sample of a migrator.

	The migration framework has the following features:

	1) It is non-destructive. You can migrate into an existing Bugzilla

	2) It uses Bugzilla::Object stuff to create products, components, bugs,
users, and attachments, so it will continue to work into the future, and
automatically validates all data as it is inserted.

	3) All of the inserting of data is handled by Bugzilla::Migrate, so
your migration code doesn't have to do that.

	4) It's relatively easy to implement new migrators for systems.
Basically all you have to do is provide arrays of hashes describing the
products, users, and bugs in your bug-tracker, and Bugzilla::Migrate
does the rest of the work. It even contains a facility to translate
values from the old bug-tracker to Bugzilla, and allows the end user to
specify how that translation should work.

	5) It is capable of doing a "dry-run" of your migration, so that you
can see if everything is going to go well before actually committing
anything to the database.

	6) Bugzilla::Migtate prints output, handles configuration of your
migrator--basically, it really does *everything* except for reading the
data from your bug-tracker.

	So now, I'd really love to see some new migrators! The bug-trackers
that I'd most like to see new migrators for are:


	And any other bug-tracker that you want to write a migrator for will be

	The review requirements on migrators are slightly relaxed--I will
believe you when you say that it works, as long as it's coded well and
follows the Bugzilla Developers' Guide.

	Also, if anybody who wants to provide me (or the Bugzilla project in
general) a dump of a large working installation of a bug-tracker, that
will help people who want to write a migrator.

	Happy migrating! :-)

Competent, Friendly Bugzilla and Perl Services. Everything Else, too.

More information about the developers mailing list