]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/cats/update_sqlite_tables.in
remove GROUP BY on db_get_job_volume_names. REVIEW.
[bacula/bacula] / bacula / src / cats / update_sqlite_tables.in
1 #!/bin/sh
2 #
3 # shell script to update SQLite from version 1.32 to 1.33
4 #
5 echo " "
6 echo "Depending on the size of your database,"
7 echo "this script may take several minutes to run."
8 echo " "
9
10 bindir=@SQL_BINDIR@
11 cd @working_dir@
12
13 $bindir/sqlite $* bacula.db <<END-OF-DATA
14
15 BEGIN TRANSACTION;
16 CREATE TEMPORARY TABLE Media_backup (
17    MediaId INTEGER UNSIGNED AUTOINCREMENT,
18    VolumeName VARCHAR(128) NOT NULL,
19    Slot INTEGER DEFAULT 0,
20    PoolId INTEGER UNSIGNED REFERENCES Pool NOT NULL,
21    MediaType VARCHAR(128) NOT NULL,
22    FirstWritten DATETIME DEFAULT 0,
23    LastWritten DATETIME DEFAULT 0,
24    LabelDate DATETIME DEFAULT 0,
25    VolJobs INTEGER UNSIGNED DEFAULT 0,
26    VolFiles INTEGER UNSIGNED DEFAULT 0,
27    VolBlocks INTEGER UNSIGNED DEFAULT 0,
28    VolMounts INTEGER UNSIGNED DEFAULT 0,
29    VolBytes BIGINT UNSIGNED DEFAULT 0,
30    VolErrors INTEGER UNSIGNED DEFAULT 0,
31    VolWrites INTEGER UNSIGNED DEFAULT 0,
32    VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
33    VolStatus VARCHAR(20) NOT NULL,
34    Recycle TINYINT DEFAULT 0,
35    VolRetention BIGINT UNSIGNED DEFAULT 0,
36    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
37    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
38    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
39    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
40    Drive INTEGER DEFAULT 0,
41    InChanger TINYINT DEFAULT 0,
42    MediaAddressing TINYINT DEFAULT 0,
43    PRIMARY KEY(MediaId)
44    );
45
46 INSERT INTO Media_backup SELECT 
47    MediaId, VolumeName, Slot, PoolId,
48    MediaType, FirstWritten, LastWritten,
49    LabelDate, VolJobs, VolFiles, VolBlocks,
50    VolMounts, VolBytes, VolErrors, VolWrites,
51    VolCapacityBytes, VolStatus, Recycle,
52    VolRetention, VolUseDuration, MaxVolJobs,
53    MaxVolFiles, MaxVolBytes, 0, 0, 0
54    FROM Media;
55
56
57 DROP TABLE Media;
58
59 CREATE TABLE Media (
60    MediaId INTEGER UNSIGNED AUTOINCREMENT,
61    VolumeName VARCHAR(128) NOT NULL,
62    Slot INTEGER DEFAULT 0,
63    PoolId INTEGER UNSIGNED REFERENCES Pool NOT NULL,
64    MediaType VARCHAR(128) NOT NULL,
65    FirstWritten DATETIME DEFAULT 0,
66    LastWritten DATETIME DEFAULT 0,
67    LabelDate DATETIME DEFAULT 0,
68    VolJobs INTEGER UNSIGNED DEFAULT 0,
69    VolFiles INTEGER UNSIGNED DEFAULT 0,
70    VolBlocks INTEGER UNSIGNED DEFAULT 0,
71    VolMounts INTEGER UNSIGNED DEFAULT 0,
72    VolBytes BIGINT UNSIGNED DEFAULT 0,
73    VolErrors INTEGER UNSIGNED DEFAULT 0,
74    VolWrites INTEGER UNSIGNED DEFAULT 0,
75    VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
76    VolStatus VARCHAR(20) NOT NULL,
77    Recycle TINYINT DEFAULT 0,
78    VolRetention BIGINT UNSIGNED DEFAULT 0,
79    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
80    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
81    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
82    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
83    Drive INTEGER DEFAULT 0,
84    InChanger TINYINT DEFAULT 0,
85    MediaAddressing TINYINT DEFAULT 0,
86    PRIMARY KEY(MediaId)
87    );
88
89 INSERT INTO Media (
90    MediaId, VolumeName, Slot, PoolId,
91    MediaType, FirstWritten, LastWritten,
92    LabelDate, VolJobs, VolFiles, VolBlocks,
93    VolMounts, VolBytes, VolErrors, VolWrites,
94    VolCapacityBytes, VolStatus, Recycle,
95    VolRetention, VolUseDuration, MaxVolJobs,
96    MaxVolFiles, MaxVolBytes, Drive, 
97    InChanger, MediaAddressing)
98    SELECT * FROM Media_backup;
99
100 DROP TABLE Media_backup;
101
102 CREATE INDEX inx8 ON Media (PoolId);
103
104 CREATE TABLE Pool_backup (
105    PoolId INTEGER UNSIGNED AUTOINCREMENT,
106    Name VARCHAR(128) NOT NULL,
107    NumVols INTEGER UNSIGNED DEFAULT 0,
108    MaxVols INTEGER UNSIGNED DEFAULT 0,
109    UseOnce TINYINT DEFAULT 0,
110    UseCatalog TINYINT DEFAULT 1,
111    AcceptAnyVolume TINYINT DEFAULT 0,
112    VolRetention BIGINT UNSIGNED DEFAULT 0,
113    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
114    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
115    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
116    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
117    AutoPrune TINYINT DEFAULT 0,
118    Recycle TINYINT DEFAULT 0,
119    PoolType VARCHAR(20) NOT NULL,
120    LabelFormat VARCHAR(128) NOT NULL,
121    Enabled TINYINT DEFAULT 1,
122    ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
123    RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
124    UNIQUE (Name),
125    PRIMARY KEY (PoolId)
126    );
127
128 INSERT INTO Pool_backup SELECT
129    PoolId,
130    Name,
131    NumVols,
132    MaxVols,
133    UseOnce,
134    UseCatalog,
135    AcceptAnyVolume,
136    VolRetention,
137    VolUseDuration,
138    MaxVolJobs,
139    MaxVolFiles,
140    MaxVolBytes,
141    AutoPrune,
142    Recycle,
143    PoolType,
144    LabelFormat, 1, 0, 0
145    FROM Pool;
146
147 DROP TABLE Pool;
148
149 CREATE TABLE Pool (
150    PoolId INTEGER UNSIGNED AUTOINCREMENT,
151    Name VARCHAR(128) NOT NULL,
152    NumVols INTEGER UNSIGNED DEFAULT 0,
153    MaxVols INTEGER UNSIGNED DEFAULT 0,
154    UseOnce TINYINT DEFAULT 0,
155    UseCatalog TINYINT DEFAULT 1,
156    AcceptAnyVolume TINYINT DEFAULT 0,
157    VolRetention BIGINT UNSIGNED DEFAULT 0,
158    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
159    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
160    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
161    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
162    AutoPrune TINYINT DEFAULT 0,
163    Recycle TINYINT DEFAULT 0,
164    PoolType VARCHAR(20) NOT NULL,
165    LabelFormat VARCHAR(128) NOT NULL,
166    Enabled TINYINT DEFAULT 1,
167    ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
168    RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
169    UNIQUE (Name),
170    PRIMARY KEY (PoolId)
171    );
172
173 INSERT INTO Pool (
174    PoolId,
175    Name,
176    NumVols,
177    MaxVols,
178    UseOnce,
179    UseCatalog,
180    AcceptAnyVolume,
181    VolRetention,
182    VolUseDuration,
183    MaxVolJobs,
184    MaxVolFiles,
185    MaxVolBytes,
186    AutoPrune,
187    Recycle,
188    PoolType,
189    LabelFormat, Enabled, ScratchPoolId, RecyclePoolId)
190    SELECT * FROM Pool_backup;
191
192 DROP TABLE Pool_backup;
193
194
195 DROP TABLE BaseFiles;
196
197 CREATE TABLE BaseFiles (
198    BaseId INTEGER UNSIGNED AUTOINCREMENT,
199    BaseJobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
200    JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
201    FileId INTEGER UNSIGNED REFERENCES File NOT NULL,
202    FileIndex INTEGER UNSIGNED,
203    PRIMARY KEY(BaseId)
204    );
205
206 COMMIT;
207
208 UPDATE Version SET VersionId=7;
209
210 END-OF-DATA