]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/make_sqlite_tables.in
Print block errors once + add RunAfterFailedJob + improve db_find_job_start_time...
[bacula/bacula] / bacula / src / cats / make_sqlite_tables.in
index 49d4720e35c11895069ddec36fd4ecaae877242a..56244601a6a89d0ec10d5579b847a45cb02a525d 100644 (file)
@@ -5,37 +5,44 @@
 bindir=@SQL_BINDIR@
 cd @working_dir@
 
-$bindir/sqlite bacula.db <<END-OF-DATA
+$bindir/sqlite $* bacula.db <<END-OF-DATA
 CREATE TABLE Filename (
   FilenameId INTEGER UNSIGNED AUTOINCREMENT,
   Name TEXT DEFAULT "",
   PRIMARY KEY(FilenameId) 
   );
 
+CREATE INDEX inx1 ON Filename (Name);
+
 CREATE TABLE Path (
    PathId INTEGER UNSIGNED AUTOINCREMENT,
    Path TEXT DEFAULT "",
    PRIMARY KEY(PathId) 
    );
 
+CREATE INDEX inx2 ON Path (Path);
+
 
 CREATE TABLE File (
    FileId INTEGER UNSIGNED AUTOINCREMENT,
    FileIndex INTEGER UNSIGNED NOT NULL,
    JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
    PathId INTEGER UNSIGNED REFERENCES Path NOT NULL,
-   FilenameId INTEGER REFERENCES Filename NOT NULL,
+   FilenameId INTEGER UNSIGNED REFERENCES Filename NOT NULL,
    MarkId INTEGER UNSIGNED DEFAULT 0,
    LStat VARCHAR(255) NOT NULL,
-   MD5 VARCHAR(25) NOT NULL,
+   MD5 VARCHAR(255) NOT NULL,
    PRIMARY KEY(FileId) 
    );
 
+CREATE INDEX inx3 ON File (JobId);
+CREATE INDEX inx4 ON File (PathId);
+CREATE INDEX inx5 ON File (FileNameId);
+
 CREATE TABLE Job (
    JobId INTEGER UNSIGNED NOT NULL,
    Job VARCHAR(128) NOT NULL,
    Name VARCHAR(128) NOT NULL,
-   PurgedFiles TINYINT DEFAULT 0,
    Type CHAR NOT NULL,
    Level CHAR NOT NULL,
    ClientId INTEGER REFERENCES Client DEFAULT 0,
@@ -52,13 +59,18 @@ CREATE TABLE Job (
    JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
    PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
    FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
+   PurgedFiles TINYINT DEFAULT 0,
+   HasBase TINYINT DEFAULT 0,
    PRIMARY KEY(JobId) 
    );
 
+CREATE INDEX inx6 ON Job (Name);
+
 CREATE TABLE FileSet (
    FileSetId INTEGER UNSIGNED AUTOINCREMENT,
    FileSet VARCHAR(128) NOT NULL,
    MD5 VARCHAR(25) NOT NULL,
+   CreateTime DATETIME DEFAULT 0,
    PRIMARY KEY(FileSetId)
    );
 
@@ -72,9 +84,12 @@ CREATE TABLE JobMedia (
    EndFile INTEGER UNSIGNED DEFAULT 0,
    StartBlock INTEGER UNSIGNED DEFAULT 0,
    EndBlock INTEGER UNSIGNED DEFAULT 0,
+   VolIndex INTEGER UNSIGNED DEFAULT 0,
    PRIMARY KEY(JobMediaId) 
    );
 
+CREATE INDEX inx7 ON JobMedia (JobId, MediaId);
+
 
 CREATE TABLE Media (
    MediaId INTEGER UNSIGNED AUTOINCREMENT,
@@ -92,14 +107,19 @@ CREATE TABLE Media (
    VolBytes BIGINT UNSIGNED DEFAULT 0,
    VolErrors INTEGER UNSIGNED DEFAULT 0,
    VolWrites INTEGER UNSIGNED DEFAULT 0,
-   VolMaxBytes BIGINT UNSIGNED DEFAULT 0,
    VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
    VolStatus VARCHAR(20) NOT NULL,
    Recycle TINYINT DEFAULT 0,
    VolRetention BIGINT UNSIGNED DEFAULT 0,
+   VolUseDuration BIGINT UNSIGNED DEFAULT 0,
+   MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
+   MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
+   MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
    PRIMARY KEY(MediaId)
    );
 
+CREATE INDEX inx8 ON Media (PoolId);
+
 CREATE TABLE Pool (
    PoolId INTEGER UNSIGNED AUTOINCREMENT,
    Name VARCHAR(128) NOT NULL,
@@ -109,6 +129,10 @@ CREATE TABLE Pool (
    UseCatalog TINYINT DEFAULT 1,
    AcceptAnyVolume TINYINT DEFAULT 0,
    VolRetention BIGINT UNSIGNED DEFAULT 0,
+   VolUseDuration BIGINT UNSIGNED DEFAULT 0,
+   MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
+   MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
+   MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
    AutoPrune TINYINT DEFAULT 0,
    Recycle TINYINT DEFAULT 0,
    PoolType VARCHAR(20) NOT NULL,
@@ -129,6 +153,23 @@ CREATE TABLE Client (
    PRIMARY KEY(ClientId)
    );
 
+CREATE TABLE BaseFiles (
+   BaseId INTEGER UNSIGNED AUTOINCREMENT,
+   JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
+   FileId INTEGER UNSIGNED REFERENCES File NOT NULL,
+   FileIndex INTEGER UNSIGNED,
+   PRIMARY KEY(BaseId)
+   );
+
+CREATE TABLE UnsavedFiles (
+   UnsavedId INTEGER UNSIGNED AUTOINCREMENT,
+   JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
+   PathId INTEGER UNSIGNED REFERENCES Path NOT NULL,
+   FilenameId INTEGER UNSIGNED REFERENCES Filename NOT NULL,
+   PRIMARY KEY (UnsavedId)
+   );
+
+
 CREATE TABLE NextId (
    id INTEGER UNSIGNED DEFAULT 0,
    TableName TEXT NOT NULL,
@@ -143,11 +184,10 @@ CREATE TABLE Version (
    );
 
 -- Initialize Version           
-INSERT INTO Version (VersionId) VALUES (2);
+INSERT INTO Version (VersionId) VALUES (6);
 
 CREATE TABLE Counters (
    Counter TEXT NOT NULL,     
-   PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
    MinValue INTEGER DEFAULT 0, 
    MaxValue INTEGER DEFAULT 0,
    CurrentValue INTEGER DEFAULT 0,
@@ -159,4 +199,6 @@ PRAGMA default_synchronous = OFF;
 PRAGMA default_cache_size = 10000;
 
 END-OF-DATA
+
+chmod 640 bacula.db
 exit 0