]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/cats/update_sqlite3_tables.in
revert the update_bacula_table script change with bad indexes
[bacula/bacula] / bacula / src / cats / update_sqlite3_tables.in
index b9558f82256c4fc27e87ef0fb2afc84125936c7c..54a407d26f307bbf2c02f09e2f1f155cc57ba9ae 100644 (file)
@@ -15,10 +15,15 @@ sqlite=@DB_TYPE@
 db_name=@db_name@
 
 ${bindir}/${sqlite} $* ${db_name}.db <<END-OF-DATA
+-- Can be replaced by 
+-- ALTER TABLE Job ADD COLUMN (ReadBytes BIGINT UNSIGNED DEFAULT 0);
+
 BEGIN TRANSACTION;
+CREATE TEMPORARY TABLE job_backup AS SELECT * FROM Job;
+DROP TABLE Job;
 
--- Create a table like Job for long term statistics
-CREATE TABLE JobStat (
+CREATE TABLE Job
+(
    JobId INTEGER,
    Job VARCHAR(128) NOT NULL,
    Name VARCHAR(128) NOT NULL,
@@ -35,6 +40,7 @@ CREATE TABLE JobStat (
    VolSessionTime INTEGER UNSIGNED DEFAULT 0,
    JobFiles INTEGER UNSIGNED DEFAULT 0,
    JobBytes BIGINT UNSIGNED DEFAULT 0,
+   ReadBytes BIGINT UNSIGNED DEFAULT 0,
    JobErrors INTEGER UNSIGNED DEFAULT 0,
    JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
    PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
@@ -42,12 +48,180 @@ CREATE TABLE JobStat (
    PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
    PurgedFiles TINYINT DEFAULT 0,
    HasBase TINYINT DEFAULT 0,
-   PRIMARY KEY(JobId) 
+   PRIMARY KEY(JobId)
    );
-CREATE INDEX inx61 ON JobStat (Name);
+CREATE INDEX inx6 ON Job (Name);
 
-UPDATE Version SET VersionId=11;
+INSERT INTO Job (JobId, Job, Name, Type, Level, ClientId, JobStatus,
+SchedTime, StartTime, EndTime, RealEndTime, JobTDate, VolSessionId,
+VolSessionTime, JobFiles, JobBytes, JobErrors, JobMissingFiles,
+PoolId, FileSetId, PriorJobId, PurgedFiles, HasBase) SELECT
+JobId, Job, Name, Type, Level, ClientId, JobStatus, SchedTime, StartTime,
+EndTime, RealEndTime, JobTDate, VolSessionId, VolSessionTime, JobFiles,
+JobBytes, JobErrors, JobMissingFiles, PoolId, FileSetId, PriorJobId,
+PurgedFiles, HasBase FROM Job_backup;
+
+DROP TABLE Job_backup;
+
+
+-- ----------------------------------------------------------------
+-- New ActionOnPurge field
+
+CREATE TEMPORARY TABLE pool_backup AS SELECT * FROM Pool;
+DROP TABLE Pool;
+
+CREATE TABLE Pool (
+   PoolId INTEGER,
+   Name VARCHAR(128) NOT NULL,
+   NumVols INTEGER UNSIGNED DEFAULT 0,
+   MaxVols INTEGER UNSIGNED DEFAULT 0,
+   UseOnce TINYINT DEFAULT 0,
+   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,
+   ActionOnPurge     TINYINT    DEFAULT 0,
+   PoolType VARCHAR(20) NOT NULL,
+   LabelType TINYINT DEFAULT 0,
+   LabelFormat VARCHAR(128) NOT NULL,
+   Enabled TINYINT DEFAULT 1,
+   ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   NextPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   MigrationHighBytes BIGINT UNSIGNED DEFAULT 0,
+   MigrationLowBytes BIGINT UNSIGNED DEFAULT 0,
+   MigrationTime BIGINT UNSIGNED DEFAULT 0,
+   UNIQUE (Name),
+   PRIMARY KEY (PoolId)
+   );
+
+INSERT INTO Pool (PoolId, Name, NumVols, MaxVols, UseOnce, UseCatalog,
+AcceptAnyVolume, VolRetention, VolUseDuration, MaxVolJobs, MaxVolFiles,
+MaxVolBytes, AutoPrune, Recycle, PoolType, LabelType,
+LabelFormat, Enabled, ScratchPoolId, RecyclePoolId, NextPoolId,
+MigrationHighBytes, MigrationLowBytes, MigrationTime) 
+SELECT PoolId, Name, NumVols, MaxVols, UseOnce, UseCatalog, AcceptAnyVolume,
+VolRetention, VolUseDuration, MaxVolJobs, MaxVolFiles, MaxVolBytes, AutoPrune,
+Recycle, PoolType, LabelType, LabelFormat, Enabled,
+ScratchPoolId, RecyclePoolId, NextPoolId, MigrationHighBytes,
+MigrationLowBytes, MigrationTime FROM pool_backup;
+
+DROP TABLE pool_backup;
 
+-- ----------------------------------------------------------------
+-- New ActionOnPurge field
+
+CREATE TEMPORARY TABLE media_backup AS SELECT * FROM Media;
+DROP TABLE Media;
+
+CREATE TABLE Media (
+   MediaId INTEGER,
+   VolumeName VARCHAR(128) NOT NULL,
+   Slot INTEGER DEFAULT 0,
+   PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   MediaType VARCHAR(128) NOT NULL,
+   MediaTypeId INTEGER UNSIGNED REFERENCES MediaType DEFAULT 0,
+   LabelType TINYINT DEFAULT 0,
+   FirstWritten DATETIME DEFAULT 0,
+   LastWritten DATETIME DEFAULT 0,
+   LabelDate DATETIME DEFAULT 0,
+   VolJobs INTEGER UNSIGNED DEFAULT 0,
+   VolFiles INTEGER UNSIGNED DEFAULT 0,
+   VolBlocks INTEGER UNSIGNED DEFAULT 0,
+   VolMounts INTEGER UNSIGNED DEFAULT 0,
+   VolBytes BIGINT UNSIGNED DEFAULT 0,
+   VolParts INTEGER UNSIGNED DEFAULT 0,
+   VolErrors INTEGER UNSIGNED DEFAULT 0,
+   VolWrites INTEGER UNSIGNED DEFAULT 0,
+   VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
+   VolStatus VARCHAR(20) NOT NULL,
+   Enabled TINYINT DEFAULT 1,
+   Recycle TINYINT DEFAULT 0,
+   ActionOnPurge     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,
+   InChanger TINYINT DEFAULT 0,
+   StorageId INTEGER UNSIGNED REFERENCES Storage DEFAULT 0,
+   DeviceId INTEGER UNSIGNED REFERENCES Device DEFAULT 0,
+   MediaAddressing TINYINT DEFAULT 0,
+   VolReadTime BIGINT UNSIGNED DEFAULT 0,
+   VolWriteTime BIGINT UNSIGNED DEFAULT 0,
+   EndFile INTEGER UNSIGNED DEFAULT 0,
+   EndBlock INTEGER UNSIGNED DEFAULT 0,
+   LocationId INTEGER UNSIGNED REFERENCES Location DEFAULT 0,
+   RecycleCount INTEGER UNSIGNED DEFAULT 0,
+   InitialWrite DATETIME DEFAULT 0,
+   ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   Comment TEXT,
+   PRIMARY KEY(MediaId)
+   );
+
+CREATE INDEX inx8 ON Media (PoolId);
+
+INSERT INTO Media (
+   MediaId, VolumeName, Slot, PoolId, MediaType, MediaTypeId,
+   LabelType, FirstWritten, LastWritten, LabelDate, VolJobs,
+   VolFiles, VolBlocks, VolMounts, VolBytes, VolParts, VolErrors,
+   VolWrites, VolCapacityBytes, VolStatus, Enabled, Recycle,
+   VolRetention, VolUseDuration, MaxVolJobs,
+   MaxVolFiles, MaxVolBytes, InChanger, StorageId, DeviceId,
+   MediaAddressing, VolReadTime, VolWriteTime, EndFile, EndBlock,
+   LocationId, RecycleCount, InitialWrite, ScratchPoolId,
+   RecyclePoolId, Comment)
+SELECT MediaId, VolumeName, Slot, PoolId, MediaType, MediaTypeId,
+   LabelType, FirstWritten, LastWritten, LabelDate, VolJobs,
+   VolFiles, VolBlocks, VolMounts, VolBytes, VolParts, VolErrors,
+   VolWrites, VolCapacityBytes, VolStatus, Enabled, Recycle,
+   VolRetention, VolUseDuration, MaxVolJobs,
+   MaxVolFiles, MaxVolBytes, InChanger, StorageId, DeviceId,
+   MediaAddressing, VolReadTime, VolWriteTime, EndFile, EndBlock,
+   LocationId, RecycleCount, InitialWrite, ScratchPoolId,
+   RecyclePoolId, Comment FROM media_backup;
+
+DROP TABLE media_backup;
+
+UPDATE Version SET VersionId=11;
 COMMIT;
 
+-- If you have already this table, you can remove it with:
+-- DROP TABLE JobHistory;
+
+-- Create a table like Job for long term statistics
+CREATE TABLE JobHisto (
+   JobId INTEGER,
+   Job VARCHAR(128) NOT NULL,
+   Name VARCHAR(128) NOT NULL,
+   Type CHAR NOT NULL,
+   Level CHAR NOT NULL,
+   ClientId INTEGER REFERENCES Client DEFAULT 0,
+   JobStatus CHAR NOT NULL,
+   SchedTime DATETIME NOT NULL,
+   StartTime DATETIME DEFAULT 0,
+   EndTime DATETIME DEFAULT 0,
+   RealEndTime DATETIME DEFAULT 0,
+   JobTDate BIGINT UNSIGNED DEFAULT 0,
+   VolSessionId INTEGER UNSIGNED DEFAULT 0,
+   VolSessionTime INTEGER UNSIGNED DEFAULT 0,
+   JobFiles INTEGER UNSIGNED DEFAULT 0,
+   JobBytes BIGINT UNSIGNED DEFAULT 0,
+   ReadBytes BIGINT UNSIGNED DEFAULT 0,
+   JobErrors INTEGER UNSIGNED DEFAULT 0,
+   JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
+   PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
+   FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
+   PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
+   PurgedFiles TINYINT DEFAULT 0,
+   HasBase TINYINT DEFAULT 0
+   );
+CREATE INDEX inx61 ON JobHisto (StartTime);
+
 END-OF-DATA