]> git.sur5r.net Git - bacula/bacula/blob - bacula/updatedb/update_mysql_tables_6_to_7
Try to fix bug #2349 multiple recycle messages
[bacula/bacula] / bacula / updatedb / update_mysql_tables_6_to_7
1 #!/bin/sh
2 #
3 # Shell script to update MySQL tables from version 1.32 to 1.33
4 #
5 echo " "
6 echo "This script will update a bacula database from version 6 to 7."
7 echo "Depending on the size of your database,"
8 echo "this script may take several minutes to run."
9 echo " "
10
11 # the location of the mysql program
12 bindir=/usr/bin
13
14 DB_VER=`$bindir/mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
15 if [ -z "$DB_VER" ]; then
16         echo "Sorry, I can't seem to locate a bacula database."
17         exit 1
18 fi
19
20 if [ -n "$DB_VER" ] && [ "$DB_VER" -ne "6" ]; then
21         echo "Sorry, this script is designed to update a version 6 database"
22         echo "and you have a version $DB_VER database."
23         exit 1
24 fi
25
26 if $bindir/mysql $* -f <<END-OF-DATA
27 USE bacula;
28
29 ALTER TABLE Media ADD COLUMN InChanger TINYINT NOT NULL DEFAULT 0;
30 ALTER TABLE Media ADD COLUMN MediaAddressing TINYINT NOT NULL DEFAULT 0;
31 ALTER TABLE Media ADD COLUMN VolReadTime BIGINT UNSIGNED NOT NULL DEFAULT 0;
32 ALTER TABLE Media ADD COLUMN VolWriteTime BIGINT UNSIGNED NOT NULL DEFAULT 0;
33
34 ALTER TABLE Pool ADD COLUMN Enabled TINYINT DEFAULT 1;
35 ALTER TABLE Pool ADD COLUMN ScratchPoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool;
36 ALTER TABLE Pool ADD COLUMN RecyclePoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool;
37
38 DROP TABLE BaseFiles;
39
40
41 CREATE TABLE BaseFiles (
42    BaseId INTEGER UNSIGNED AUTO_INCREMENT,
43    JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
44    FileId INTEGER UNSIGNED NOT NULL REFERENCES File,
45    FileIndex INTEGER UNSIGNED,
46    PRIMARY KEY(BaseId)
47    );
48
49 DROP TABLE UnsavedFiles;
50
51 CREATE TABLE UnsavedFiles (
52    UnsavedId INTEGER UNSIGNED AUTO_INCREMENT,
53    JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
54    PathId INTEGER UNSIGNED NOT NULL REFERENCES Path,
55    FilenameId INTEGER UNSIGNED NOT NULL REFERENCES Filename,
56    PRIMARY KEY (UnsavedId)
57    );
58
59 DROP TABLE BaseFiles;
60
61 CREATE TABLE BaseFiles (
62    BaseId INTEGER UNSIGNED AUTO_INCREMENT,
63    BaseJobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
64    JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
65    FileId INTEGER UNSIGNED NOT NULL REFERENCES File,
66    FileIndex INTEGER UNSIGNED,
67    PRIMARY KEY(BaseId)
68    );
69
70 DELETE FROM Version;
71 INSERT INTO Version (VersionId) VALUES (7);
72
73 END-OF-DATA
74 then
75    echo "Update of Bacula MySQL tables succeeded."
76 else
77    echo "Update of Bacula MySQL tables failed."
78 fi
79 exit 0