Migrating to Koji 1.8¶
The 1.8 release of Koji refactors how images (livecd and appliance) are stored in the database and on disc. These changes will require a little extra work when updating.
There have also been some changes to the command line.
Finally, kojira accepts some new options.
DB Schema Updates¶
Previous to 1.8, images were stored in separately from other builds, both in
the database and on disc. The new schema adds new tables:
The following tables are now obsolete:
However you should not drop these tables until you have migrated your image
As in previous releases, we provide a migration script that updates the database.
# psql koji koji </usr/share/doc/koji-1.8.0/docs/schema-upgrade-1.7-1.8.sql
Note that the SQL script does not (and can not) automatically migrate your old
image data to the new tables. After applying the schema changes, you can
migrate old images using the
migrateImage hub call. This method is necessary
because the new schema requires each image to have a name, version, and release
value. The values for name and version cannot be automatically guessed.
Migrating your old images¶
If you have old images, you can migrate them to the new system using the
migrateImage hub call. This call requires admin privilege and must also be
enabled with the
EnableImageMigration configuration option in
The signature of the call is:
migrateImage(old_image_id, name, version)
This call can made from the command line:
# koji call migrateImage 45 my_livecd 1.1
After you have migrated any necessary images to the new system, you may want to remove the old database tables and filesystem directories. This step is optional. If you want to leave the old data around, it will not affect Koji.
Before you take any of the following actions, please make sure that you have migrated any desired images.
Removing the old data is simply a matter of dropping tables and deleting files.
koji=> DROP TABLE imageinfo_listing; koji=> DROP TABLE imageinfo; # rm -rf /mnt/koji/images
Command line changes¶
For clarity and consistency, all of the
-pkg commands have been renamed to
latest-pkg -> latest-build move-pkg -> move-build tag-pkg -> tag-build untag-pkg -> untag-build
For backwards compatibility, the old commands names are also recognized.
A new command has been added,
Several commands have been modified to support images.
spin-appliance commands now require additional
arguments. These arguments specify the name and version to use for the image.
New kojira options¶
The following options are new to kojira:
Previously, kojira ran as a single process and repo deletions could potentially
slow things down (particularly for Maven-enabled repos). Now kojira spawns
a separate process to handle these deletions. The
determines how many such processes it will launch at one time.
When Maven-enabled repos are in use, they can potentially take a very long time
to regenerate. If a number of these pile up it can severely slow down
regeneration of non-Maven repos. The
max_repo_tasks_maven limits how many
Maven repos kojira will attempt to regenerate at once.
Also the following kojira option has been removed: