]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/cats/update_sqlite_tables.in
bb83b4f85cadd4ac664a5c680c9c28a56f11a116
[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    PRIMARY KEY(MediaId)
43    );
44
45 INSERT INTO Media_backup SELECT 
46    MediaId, VolumeName, Slot, PoolId,
47    MediaType, FirstWritten, LastWritten,
48    LabelDate, VolJobs, VolFiles, VolBlocks,
49    VolMounts, VolBytes, VolErrors, VolWrites,
50    VolCapacityBytes, VolStatus, Recycle,
51    VolRetention, VolUseDuration, MaxVolJobs,
52    MaxVolFiles, MaxVolBytes, 0, 0
53    FROM Media;
54
55
56 DROP TABLE Media;
57
58 CREATE TABLE Media (
59    MediaId INTEGER UNSIGNED AUTOINCREMENT,
60    VolumeName VARCHAR(128) NOT NULL,
61    Slot INTEGER DEFAULT 0,
62    PoolId INTEGER UNSIGNED REFERENCES Pool NOT NULL,
63    MediaType VARCHAR(128) NOT NULL,
64    FirstWritten DATETIME DEFAULT 0,
65    LastWritten DATETIME DEFAULT 0,
66    LabelDate DATETIME DEFAULT 0,
67    VolJobs INTEGER UNSIGNED DEFAULT 0,
68    VolFiles INTEGER UNSIGNED DEFAULT 0,
69    VolBlocks INTEGER UNSIGNED DEFAULT 0,
70    VolMounts INTEGER UNSIGNED DEFAULT 0,
71    VolBytes BIGINT UNSIGNED DEFAULT 0,
72    VolErrors INTEGER UNSIGNED DEFAULT 0,
73    VolWrites INTEGER UNSIGNED DEFAULT 0,
74    VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
75    VolStatus VARCHAR(20) NOT NULL,
76    Recycle TINYINT DEFAULT 0,
77    VolRetention BIGINT UNSIGNED DEFAULT 0,
78    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
79    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
80    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
81    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
82    Drive INTEGER DEFAULT 0,
83    InChanger TINYINT DEFAULT 0,
84    PRIMARY KEY(MediaId)
85    );
86
87 INSERT INTO Media (
88    MediaId, VolumeName, Slot, PoolId,
89    MediaType, FirstWritten, LastWritten,
90    LabelDate, VolJobs, VolFiles, VolBlocks,
91    VolMounts, VolBytes, VolErrors, VolWrites,
92    VolCapacityBytes, VolStatus, Recycle,
93    VolRetention, VolUseDuration, MaxVolJobs,
94    MaxVolFiles, MaxVolBytes, Drive, InChanger)
95    SELECT * FROM Media_backup;
96
97 DROP TABLE Media_backup;
98
99 CREATE INDEX inx8 ON Media (PoolId);
100
101 CREATE TABLE Pool_backup (
102    PoolId INTEGER UNSIGNED AUTOINCREMENT,
103    Name VARCHAR(128) NOT NULL,
104    NumVols INTEGER UNSIGNED DEFAULT 0,
105    MaxVols INTEGER UNSIGNED DEFAULT 0,
106    UseOnce TINYINT DEFAULT 0,
107    UseCatalog TINYINT DEFAULT 1,
108    AcceptAnyVolume TINYINT DEFAULT 0,
109    VolRetention BIGINT UNSIGNED DEFAULT 0,
110    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
111    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
112    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
113    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
114    AutoPrune TINYINT DEFAULT 0,
115    Recycle TINYINT DEFAULT 0,
116    PoolType VARCHAR(20) NOT NULL,
117    LabelFormat VARCHAR(128) NOT NULL,
118    Enabled TINYINT DEFAULT 1,
119    ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
120    RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
121    UNIQUE (Name),
122    PRIMARY KEY (PoolId)
123    );
124
125 INSERT INTO Pool_backup SELECT
126    PoolId,
127    Name,
128    NumVols,
129    MaxVols,
130    UseOnce,
131    UseCatalog,
132    AcceptAnyVolume,
133    VolRetention,
134    VolUseDuration,
135    MaxVolJobs,
136    MaxVolFiles,
137    MaxVolBytes,
138    AutoPrune,
139    Recycle,
140    PoolType,
141    LabelFormat, 1, 0, 0
142    FROM Pool;
143
144 DROP TABLE Pool;
145
146 CREATE TABLE Pool (
147    PoolId INTEGER UNSIGNED AUTOINCREMENT,
148    Name VARCHAR(128) NOT NULL,
149    NumVols INTEGER UNSIGNED DEFAULT 0,
150    MaxVols INTEGER UNSIGNED DEFAULT 0,
151    UseOnce TINYINT DEFAULT 0,
152    UseCatalog TINYINT DEFAULT 1,
153    AcceptAnyVolume TINYINT DEFAULT 0,
154    VolRetention BIGINT UNSIGNED DEFAULT 0,
155    VolUseDuration BIGINT UNSIGNED DEFAULT 0,
156    MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
157    MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
158    MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
159    AutoPrune TINYINT DEFAULT 0,
160    Recycle TINYINT DEFAULT 0,
161    PoolType VARCHAR(20) NOT NULL,
162    LabelFormat VARCHAR(128) NOT NULL,
163    Enabled TINYINT DEFAULT 1,
164    ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
165    RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
166    UNIQUE (Name),
167    PRIMARY KEY (PoolId)
168    );
169
170 INSERT INTO Pool (
171    PoolId,
172    Name,
173    NumVols,
174    MaxVols,
175    UseOnce,
176    UseCatalog,
177    AcceptAnyVolume,
178    VolRetention,
179    VolUseDuration,
180    MaxVolJobs,
181    MaxVolFiles,
182    MaxVolBytes,
183    AutoPrune,
184    Recycle,
185    PoolType,
186    LabelFormat, Enabled, ScratchPoolId, RecyclePoolId)
187    SELECT * FROM Pool_backup;
188
189 DROP TABLE Pool_backup;
190
191
192 DROP TABLE BaseFiles;
193
194 CREATE TABLE BaseFiles (
195    BaseId INTEGER UNSIGNED AUTOINCREMENT,
196    BaseJobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
197    JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
198    FileId INTEGER UNSIGNED REFERENCES File NOT NULL,
199    FileIndex INTEGER UNSIGNED,
200    PRIMARY KEY(BaseId)
201    );
202
203 COMMIT;
204
205 UPDATE Version SET VersionId=7;
206
207 END-OF-DATA