]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/update_sqlite3_tables.in
Backport from Bacula Enterprise
[bacula/bacula] / bacula / src / cats / update_sqlite3_tables.in
index 68ceb2ca3c5315518dac4dc6ff79fcab33ef4d9c..0f1f15abf6c052041b39060111ab2b8c7dbd9d25 100644 (file)
@@ -1,14 +1,16 @@
 #!/bin/sh
 #
-# Shell script to update sqlite3 tables from Bacula Community version 5.0.x to 5.2.x
+# Copyright (C) 2000-2015 Kern Sibbald
+# License: BSD 2-Clause; see file LICENSE-FOSS
 #
-#  Author:  Kern Sibbald
-#  License: LGPLv3
+# Shell script to update MySQL tables from Bacula Community version 
+#  5.0.x, 5.2.x, 7.0.x
 #
-
 echo " "
-echo "This script will update a Bacula sqlite3 database from version 12 to 14"
-echo " which is needed to convert from Bacula Community version 5.0.x to 5.2.x"
+echo "This script will update a Bacula MySQL database from version 12-14 to 15"
+echo " "
+echo "Depending on the current version of your catalog, you may have to run this script"
+echo " multiple times"
 echo " "
 
 bindir=@SQLITE_BINDIR@
@@ -17,18 +19,19 @@ cd @working_dir@
 db_name=@db_name@
 
 DBVERSION=`sqlite3 ${db_name}.db <<END
-select VersionId from Version;
+SELECT VersionId FROM Version LIMIT 1;
 END
 `
-if [ $DBVERSION != 12 ] ; then
-   echo " "
-   echo "The existing database is version $DBVERSION !!"
-   echo "This script can only update an existing version 12 database to version 14."
-   echo "Error. Cannot upgrade this database."
-   echo " "
-   exit 1
+if [ "$DBVERSION" -lt 12 -o "$DBVERSION" -gt 14 ] ; then
+    echo " "
+    echo "The existing database is version $DBVERSION !!"
+    echo "This script can only update an existing version 12, 13, 14 or 1014 database to version 1015."
+    echo "Error. Cannot upgrade this database."
+    echo " "
+    exit 1
 fi
 
+if [ "$DBVERSION" = 12 ] ; then
 sqlite3 $* ${db_name}.db <<END-OF-DATA
 BEGIN;
 
@@ -48,9 +51,62 @@ CREATE TABLE RestoreObject (
    );
 CREATE INDEX restore_jobid_idx ON RestoreObject (JobId);
 
-ALTER TABLE File ADD COLUMN DeltaSeq smallint default 0;
+UPDATE Version SET VersionId=13;
+COMMIT;
+
+END-OF-DATA
+DBVERSION=13
+fi
 
+if [ "$DBVERSION" = 13 ] ; then
+
+sqlite3 $* ${db_name}.db <<END-OF-DATA
+BEGIN;
+
+ALTER TABLE File ADD COLUMN DeltaSeq smallint default 0;
 UPDATE Version SET VersionId=14;
+
 COMMIT;
 
 END-OF-DATA
+
+DBVERSION=14
+
+fi
+
+if [ "$DBVERSION" = 14 ] ; then
+    sqlite3 $* ${db_name}.db  <<END-OF-DATA
+INSERT INTO Status (JobStatus,JobStatusLong,Severity) VALUES
+   ('I', 'Incomplete Job',25);
+ALTER TABLE Media ADD COLUMN VolABytes BIGINT UNSIGNED DEFAULT 0;
+ALTER TABLE Media ADD COLUMN VolAPadding BIGINT UNSIGNED DEFAULT 0;
+ALTER TABLE Media ADD COLUMN VolHoleBytes BIGINT UNSIGNED DEFAULT 0;
+ALTER TABLE Media ADD COLUMN VolHoles INTEGER UNSIGNED DEFAULT 0;
+ALTER TABLE Media CHANGE VolWrites VolWrites BIGINT UNSIGNED;
+
+CREATE TABLE Snapshot (
+  SnapshotId     INTEGER UNSIGNED AUTO_INCREMENT,
+  Name           TINYBLOB NOT NULL,
+  JobId          INTEGER UNSIGNED DEFAULT 0,
+  FileSetId INTEGER UNSIGNED DEFAULT 0;
+  CreateTDate    BIGINT   NOT NULL,
+  CreateDate     DATETIME NOT NULL,
+  ClientId       INTEGER DEFAULT 0,
+  Volume         TINYBLOB NOT NULL,
+  Device         TINYBLOB NOT NULL,
+  Type           TINYBLOB NOT NULL,
+  Retention      INTEGER DEFAULT 0,
+  Comment        BLOB,
+  primary key (SnapshotId)
+);
+
+CREATE UNIQUE INDEX snapshot_idx ON Snapshot (Device(255), Volume(255), Name(255));
+
+CREATE INDEX jobtdate_idx on JobHisto (JobTDate);
+
+UPDATE Version SET VersionId=15;
+END-OF-DATA
+DBVERSION=15
+fi
+
+END-OF-DATA