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: image_builds
,
image_listing
, and image_archives
.
The following tables are now obsolete: imageinfo
and imageinfo_listing
.
However you should not drop these tables until you have migrated your image
data.
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 hub.conf
.
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
Cleaning up¶
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
-build
commands.
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, remove-pkg
.
Several commands have been modified to support images.
The spin-livecd
and 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:
max_delete_processes
max_repo_tasks_maven
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 max_delete_processes
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:
prune_batch_size