]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
create update_mysql_tables for 1026
authorEric Bollengier <eric@baculasystems.com>
Mon, 3 Oct 2022 08:14:00 +0000 (10:14 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 14 Sep 2023 11:56:59 +0000 (13:56 +0200)
bacula/updatedb/update_mysql_tables_1025_to_1026.in

index f9bc73396a9d5115b2f9ae368b7ad41b101ac661..f57efe61afffa3caadef04c02965fe514b0293b7 100644 (file)
@@ -1,2 +1,116 @@
-Summary: 
+#!/bin/sh
+#
+# Copyright (C) 2000-2022 Kern Sibbald
+# License: BSD 2-Clause; see file LICENSE-FOSS
+#
+# Shell script to update MySQL
+#
+echo " "
+echo "This script will update a Bacula MySQL database from version 1025 to 1026"
+echo " "
+bindir=@MYSQL_BINDIR@
+PATH="$bindir:$PATH"
+db_name=${db_name:-@db_name@}
 
+mysql $* -D ${db_name} -e "select VersionId from Version\G" >/tmp/$$
+DBVERSION=`sed -n -e 's/^VersionId: \(.*\)$/\1/p' /tmp/$$`
+if [ $DBVERSION != 1025 ] ; then
+   echo " "
+   echo "The existing database is version $DBVERSION !!"
+   echo "This script can only update an existing version 1025 database to version 1026."
+   echo "Error. Cannot upgrade this database."
+   echo " "
+   exit 1
+fi
+
+if mysql $* -f  <<END-OF-DATA
+USE ${db_name};
+CREATE INDEX meta_emailid on MetaEmail (EmailId(255));
+
+CREATE TABLE MalwareMD5
+(
+    MD5     char(22)       -- Same as in File
+);
+CREATE INDEX malwaremd5_idx on MalwareMD5 (MD5);
+
+CREATE TABLE MalwareSHA256
+(
+    MD5     char(65)       -- Same as in File
+);
+CREATE INDEX malwaresha256_idx on MalwareSHA256 (MD5);
+
+CREATE TABLE FileEvents 
+(
+   Id   BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, -- Used for replication
+   Time DATETIME DEFAULT NOW(),
+   SourceJobId   int,        -- Can be the Verify job id for example, or the jobid during a restore/backup
+   JobId         int,        -- JobId where the file was found. Used for pruning
+   FileIndex     int,        -- File reference
+   Type          char,       -- Event type (antivirus, malware scanning (M), lost file)
+   Description   blob,       -- Description of the event
+   Severity      int,        -- level of severity. (0 OK, 100 Important)
+   Source        blob,       -- Information about the source of the event
+   PRIMARY KEY(Id)
+);
+
+CREATE INDEX FileEvents_jobid_idx ON FileEvents (JobId, FileIndex);
+CREATE INDEX FileEvents_sourcejobid_idx ON FileEvents (SourceJobId);
+
+ALTER TABLE MetaEmail
+    MODIFY COLUMN EmailTenant TEXT,
+    MODIFY COLUMN EmailOwner TEXT,
+    MODIFY COLUMN EmailId TEXT,
+    MODIFY COLUMN EmailFrom TEXT,
+    MODIFY COLUMN EmailInternetMessageId TEXT,
+    MODIFY COLUMN EmailConversationId TEXT,
+    MODIFY COLUMN Plugin TEXT;
+
+DROP INDEX meta_attachmentowner ON MetaAttachment;
+DROP INDEX meta_attachmentemailid ON MetaAttachment;
+
+ALTER TABLE MetaAttachment
+    MODIFY COLUMN AttachmentTenant TEXT,
+    MODIFY COLUMN AttachmentOwner  TEXT,
+    MODIFY COLUMN AttachmentEmailId TEXT,
+    MODIFY COLUMN Plugin           TEXT;
+
+CREATE INDEX meta_attachmentowner ON MetaAttachment (AttachmentTenant(255),AttachmentOwner(255));
+CREATE INDEX meta_attachmentemailid ON MetaAttachment (AttachmentEmailId(255));
+
+ALTER TABLE Media
+    MODIFY COLUMN Worm TINYINT DEFAULT 0,
+    MODIFY COLUMN UseWorm TINYINT DEFAULT 0;
+
+ALTER TABLE Object
+    ADD COLUMN FileIndex integer not null default 0;
+
+ALTER TABLE Job
+    ADD COLUMN RealStartTime DATETIME,
+    ADD COLUMN isVirtualFull     TINYINT    default 0,
+    ADD COLUMN CompressRatio     float      default 0,
+    ADD COLUMN Rate              float      default 0,
+    ADD COLUMN LastReadStorageId Integer    default 0,
+    ADD COLUMN LastReadDevice    blob,
+    ADD COLUMN WriteStorageId    integer    default 0,
+    ADD COLUMN WriteDevice       blob,
+    ADD COLUMN Encrypted         int        default 0;
+
+ALTER TABLE Media
+    ADD COLUMN Worm     smallint default 0,
+    ADD COLUMN UseWorm  smallint default 0;
+
+INSERT INTO Events (EventsCode, EventsType, EventsTime, EventsDaemon, EventsSource, EventsRef, EventsText) VALUES
+  ('DU0001', 'catalog_update', NOW(), '*SHELL*', 'update_bacula_tables', 'pid$$', 'Catalog schema was updated to 1026');
+UPDATE Version SET VersionId=1026;
+
+
+END-OF-DATA
+then
+   echo "Update of Bacula MySQL tables 1025 to 1026 succeeded."
+   getVersion
+else
+   echo "Update of Bacula MySQL tables 1025 to 1026 failed."
+   exit 1
+fi
+
+exit 0