#!/bin/sh
#
# Shell script to update MySQL tables from version 1.22 to 1.23
#
echo " "
echo "This script will update a bacula database from version 4 to 5."
echo "Depending on the size of your database,"
echo "this script may take several minutes to run."
echo " "
# the location of the mysql program
bindir=/usr/bin
DB_VER=`$bindir/mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
if [ -z "$DB_VER" ]; then
echo "Sorry, I can't seem to locate a bacula database."
exit 1
fi
if [ -n "$DB_VER" ] && [ "$DB_VER" -ne "4" ]; then
echo "Sorry, this script is designed to update a version 4 database"
echo "and you have a version $DB_VER database."
exit 1
fi
if $bindir/mysql -f <<END-OF-DATA
USE bacula;
ALTER TABLE Media ADD COLUMN VolUseDuration BIGINT UNSIGNED NOT NULL;
ALTER TABLE Media ADD COLUMN MaxVolJobs INTEGER UNSIGNED NOT NULL;
ALTER TABLE Media ADD COLUMN MaxVolFiles INTEGER UNSIGNED NOT NULL;
ALTER TABLE Pool ADD COLUMN VolUseDuration BIGINT UNSIGNED NOT NULL;
ALTER TABLE Pool ADD COLUMN MaxVolJobs INTEGER UNSIGNED NOT NULL;
ALTER TABLE Pool ADD COLUMN MaxVolFiles INTEGER UNSIGNED NOT NULL;
ALTER TABLE Pool ADD COLUMN MaxVolBytes BIGINT UNSIGNED NOT NULL;
ALTER TABLE Media MODIFY VolStatus ENUM('Full', 'Archive', 'Append',
'Recycle', 'Purged', 'Read-Only', 'Disabled', 'Error',
'Busy', 'Used') NOT NULL;
ALTER TABLE Media CHANGE VolMaxBytes MaxVolBytes BIGINT UNSIGNED NOT NULL;
UPDATE Version SET VersionId=5;
END-OF-DATA
then
echo "Update of Bacula tables succeeded."
else
echo "Update of Bacula tables failed."
fi
exit 0
syntax highlighted by Code2HTML, v. 0.9.1