]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/make_mysql_tables.in
get regression tests working by hardcoding a bacula database name for PostgreSQL
[bacula/bacula] / bacula / src / cats / make_mysql_tables.in
index 0ffb178ac50e138ffbea7c9fd9cf9eaa4854871c..3c9ff1442cfa842bd1ff4a0b8c402f19c52f64f8 100644 (file)
@@ -1,10 +1,10 @@
 #!/bin/sh
 #
-# shell script to create Bacula tables
-
+# shell script to create Bacula MySQL tables
+#
 bindir=@SQL_BINDIR@
 
-if $bindir/mysql -f <<END-OF-DATA
+if $bindir/mysql $* -f <<END-OF-DATA
 USE bacula;
 CREATE TABLE Filename (
   FilenameId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -21,13 +21,14 @@ CREATE TABLE Path (
    );
 
 
-# ****FIXME**** make FileId BIGINT *****
+# ****FIXME**** make FileId BIGINT someday when MySQL works *****
 CREATE TABLE File (
    FileId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
-   FileIndex INTEGER UNSIGNED NOT NULL,
+   FileIndex INTEGER UNSIGNED NOT NULL DEFAULT 0,
    JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
    PathId INTEGER UNSIGNED NOT NULL REFERENCES Path,
-   FilenameId INTEGER NOT NULL REFERENCES Filename,
+   FilenameId INTEGER UNSIGNED NOT NULL REFERENCES Filename,
+   MarkId INTEGER UNSIGNED NOT NULL DEFAULT 0,
    LStat TINYBLOB NOT NULL,
    MD5 TINYBLOB NOT NULL,
    PRIMARY KEY(FileId),
@@ -41,7 +42,6 @@ CREATE TABLE Job (
    JobId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    Job TINYBLOB NOT NULL,
    Name TINYBLOB NOT NULL,
-   PurgedFiles TINYINT NOT NULL DEFAULT 0,
    Type BINARY(1) NOT NULL,
    Level BINARY(1) NOT NULL,
    ClientId INTEGER NOT NULL REFERENCES Client,
@@ -49,15 +49,17 @@ CREATE TABLE Job (
    SchedTime DATETIME NOT NULL,
    StartTime DATETIME NOT NULL,
    EndTime DATETIME NOT NULL,
-   StartDay INTEGER UNSIGNED NOT NULL,
-   VolSessionId INTEGER UNSIGNED NOT NULL,
-   VolSessionTime INTEGER UNSIGNED NOT NULL,
-   JobFiles INTEGER UNSIGNED NOT NULL,
+   JobTDate BIGINT UNSIGNED NOT NULL,
+   VolSessionId INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   VolSessionTime INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   JobFiles INTEGER UNSIGNED NOT NULL DEFAULT 0,
    JobBytes BIGINT UNSIGNED NOT NULL,
-   JobErrors INTEGER UNSIGNED NOT NULL,
-   JobMissingFiles INTEGER UNSIGNED NOT NULL,
+   JobErrors INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   JobMissingFiles INTEGER UNSIGNED NOT NULL DEFAULT 0,
    PoolId INTEGER UNSIGNED NOT NULL REFERENCES Pool,
    FileSetId INTEGER UNSIGNED NOT NULL REFERENCES FileSet,
+   PurgedFiles TINYINT NOT NULL DEFAULT 0,
+   HasBase TINYINT NOT NULL DEFAULT 0,
    PRIMARY KEY(JobId),
    INDEX (Name(128))
    );
@@ -67,6 +69,7 @@ CREATE TABLE FileSet (
    FileSetId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    FileSet TINYBLOB NOT NULL,
    MD5 TINYBLOB NOT NULL,
+   CreateTime DATETIME NOT NULL,
    PRIMARY KEY(FileSetId)
    );
 
@@ -74,12 +77,13 @@ CREATE TABLE JobMedia (
    JobMediaId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
    MediaId INTEGER UNSIGNED NOT NULL REFERENCES Media,
-   FirstIndex INTEGER UNSIGNED NOT NULL,
-   LastIndex INTEGER UNSIGNED NOT NULL,
-   StartFile INTEGER UNSIGNED NOT NULL,
-   EndFile INTEGER UNSIGNED NOT NULL,
-   StartBlock INTEGER UNSIGNED NOT NULL,
-   EndBlock INTEGER UNSIGNED NOT NULL,
+   FirstIndex INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   LastIndex INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   StartFile INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   EndFile INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   StartBlock INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   EndBlock INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   VolIndex INTEGER UNSIGNED NOT NULL DEFAULT 0,
    PRIMARY KEY(JobMediaId),
    INDEX (JobId, MediaId)
    );
@@ -88,23 +92,31 @@ CREATE TABLE JobMedia (
 CREATE TABLE Media (
    MediaId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    VolumeName TINYBLOB NOT NULL,
+   Slot INTEGER NOT NULL DEFAULT 0,
    PoolId INTEGER UNSIGNED NOT NULL REFERENCES Pool,
    MediaType TINYBLOB NOT NULL,
    FirstWritten DATETIME NOT NULL,
    LastWritten DATETIME NOT NULL,
    LabelDate DATETIME NOT NULL,
-   VolJobs INTEGER UNSIGNED NOT NULL,
-   VolFiles INTEGER UNSIGNED NOT NULL,
-   VolBlocks INTEGER UNSIGNED NOT NULL,
-   VolMounts INTEGER UNSIGNED NOT NULL,
-   VolBytes BIGINT UNSIGNED NOT NULL,
-   VolErrors INTEGER UNSIGNED NOT NULL,
-   VolWrites INTEGER UNSIGNED NOT NULL,
-   VolMaxBytes BIGINT UNSIGNED NOT NULL,
+   VolJobs INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   VolFiles INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   VolBlocks INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   VolMounts INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   VolBytes BIGINT UNSIGNED NOT NULL DEFAULT 0,
+   VolErrors INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   VolWrites INTEGER UNSIGNED NOT NULL DEFAULT 0,
    VolCapacityBytes BIGINT UNSIGNED NOT NULL,
-   VolStatus ENUM('Full', 'Archive', 'Append', 'Recycle', 
-    'Read-Only', 'Disabled', 'Error', 'Busy') NOT NULL,
-   Recycle ENUM('No', 'Yes') NOT NULL,
+   VolStatus ENUM('Full', 'Archive', 'Append', 'Recycle', 'Purged',
+    'Read-Only', 'Disabled', 'Error', 'Busy', 'Used', 'Cleaning') NOT NULL,
+   Recycle TINYINT NOT NULL DEFAULT 0,
+   VolRetention BIGINT UNSIGNED NOT NULL DEFAULT 0,
+   VolUseDuration BIGINT UNSIGNED NOT NULL DEFAULT 0,
+   MaxVolJobs INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   MaxVolFiles INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   MaxVolBytes BIGINT UNSIGNED NOT NULL DEFAULT 0,
+   Drive INTEGER NOT NULL DEFAULT 0,
+   InChanger TINYINT NOT NULL DEFAULT 0,
+   MediaAddressing TINYINT NOT NULL DEFAULT 0,
    PRIMARY KEY(MediaId),
    INDEX (PoolId)
    );
@@ -112,13 +124,23 @@ CREATE TABLE Media (
 CREATE TABLE Pool (
    PoolId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    Name TINYBLOB NOT NULL,
-   NumVols INTEGER UNSIGNED NOT NULL,
-   MaxVols INTEGER UNSIGNED NOT NULL,
+   NumVols INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   MaxVols INTEGER UNSIGNED NOT NULL DEFAULT 0,
    UseOnce TINYINT NOT NULL,
    UseCatalog TINYINT NOT NULL,
-   AcceptAnyVolume TINYINT NOT NULL,
-   PoolType ENUM('Backup', 'Copy', 'Cloned', 'Archive', 'Migration') NOT NULL,
+   AcceptAnyVolume TINYINT DEFAULT 0,
+   VolRetention BIGINT UNSIGNED NOT NULL,
+   VolUseDuration BIGINT UNSIGNED NOT NULL,
+   MaxVolJobs INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   MaxVolFiles INTEGER UNSIGNED NOT NULL DEFAULT 0,
+   MaxVolBytes BIGINT UNSIGNED NOT NULL,
+   AutoPrune TINYINT DEFAULT 0,
+   Recycle TINYINT DEFAULT 0,
+   PoolType ENUM('Backup', 'Copy', 'Cloned', 'Archive', 'Migration', 'Scratch') NOT NULL,
    LabelFormat TINYBLOB,
+   Enabled TINYINT DEFAULT 1,
+   ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
    UNIQUE (Name(128)),
    PRIMARY KEY (PoolId)
    );
@@ -128,24 +150,52 @@ CREATE TABLE Client (
    ClientId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    Name TINYBLOB NOT NULL,
    Uname TINYBLOB NOT NULL,      /* full uname -a of client */
+   AutoPrune TINYINT DEFAULT 0,
+   FileRetention BIGINT UNSIGNED NOT NULL,
+   JobRetention  BIGINT UNSIGNED NOT NULL,
    UNIQUE (Name(128)),
    PRIMARY KEY(ClientId)
    );
 
-## Experimental
-#CREATE TABLE FileSave (
-#   FileSaveId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
-#   FileIndex INTEGER UNSIGNED NOT NULL,
-#   JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
-#   FileId INTEGER UNSIGNED NOT NULL REFERENCES File,
-#   VLStat TINYBLOB NOT NULL,
-#   PRIMARY KEY(FileSaveId),
-#   );
+CREATE TABLE BaseFiles (
+   BaseId INTEGER UNSIGNED AUTO_INCREMENT,
+   BaseJobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
+   JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
+   FileId INTEGER UNSIGNED NOT NULL REFERENCES File,
+   FileIndex INTEGER UNSIGNED,
+   PRIMARY KEY(BaseId)
+   );
+
+CREATE TABLE UnsavedFiles (
+   UnsavedId INTEGER UNSIGNED AUTO_INCREMENT,
+   JobId INTEGER UNSIGNED NOT NULL REFERENCES Job,
+   PathId INTEGER UNSIGNED NOT NULL REFERENCES Path,
+   FilenameId INTEGER UNSIGNED NOT NULL REFERENCES Filename,
+   PRIMARY KEY (UnsavedId)
+   );
+
+
+CREATE TABLE Version (
+   VersionId INTEGER UNSIGNED NOT NULL 
+   );
+
+-- Initialize Version           
+INSERT INTO Version (VersionId) VALUES (7);
+
+CREATE TABLE Counters (
+   Counter TINYBLOB NOT NULL,
+   MinValue INTEGER,
+   MaxValue INTEGER,
+   CurrentValue INTEGER,
+   WrapCounter TINYBLOB NOT NULL,
+   PRIMARY KEY (Counter(128))
+   );
+
 
 END-OF-DATA
 then
-   echo "Creation of Bacula tables succeeded."
+   echo "Creation of Bacula MySQL tables succeeded."
 else
-   echo "Creation of Bacula tables failed."
+   echo "Creation of Bacula MySQL tables failed."
 fi
 exit 0