2 ===================================================================
3 --- src/cats/sql.c (révision 5461)
4 +++ src/cats/sql.c (copie de travail)
6 /* Check that the tables correspond to the version we want */
7 bool check_tables_version(JCR *jcr, B_DB *mdb)
9 - const char *query = "SELECT VersionId FROM Version";
10 + const char *query = "SELECT VersionId FROM Version "
11 + " WHERE Product = 'bacula'";
13 bacula_db_version = 0;
14 if (!db_sql_query(mdb, query, int_handler, (void *)&bacula_db_version)) {
15 Index: src/cats/update_postgresql_tables.in
16 ===================================================================
17 --- src/cats/update_postgresql_tables.in (révision 5461)
18 +++ src/cats/update_postgresql_tables.in (copie de travail)
22 -# Shell script to update PostgreSQL tables from version 1.38 to 2.0.0 or higher
23 +# Shell script to update PostgreSQL tables from version 2.2 to 3 or higher
26 -echo "This script will update a Bacula PostgreSQL database from version 9 to 10"
27 -echo " which is needed to convert from Bacula version 1.38.x to 2.0.0 or higher"
28 +echo "This script will update a Bacula PostgreSQL database from version 10 to 11"
29 +echo " which is needed to convert from Bacula version 2.2 to 3 or higher"
30 echo "Depending on the size of your database,"
31 echo "this script may take several minutes to run."
35 if $bindir/psql -f - -d ${db_name} $* <<END-OF-DATA
37 -ALTER TABLE media ADD COLUMN DeviceId integer;
38 -UPDATE media SET DeviceId=0;
39 -ALTER TABLE media ADD COLUMN MediaTypeId integer;
40 -UPDATE media SET MediaTypeId=0;
41 -ALTER TABLE media ADD COLUMN LocationId integer;
42 -UPDATE media SET LocationId=0;
43 -ALTER TABLE media ADD COLUMN RecycleCount integer;
44 -UPDATE media SET RecycleCount=0;
45 -ALTER TABLE media ADD COLUMN InitialWrite timestamp without time zone;
46 -ALTER TABLE media ADD COLUMN scratchpoolid integer;
47 -UPDATE media SET scratchpoolid=0;
48 -ALTER TABLE media ADD COLUMN recyclepoolid integer;
49 -UPDATE media SET recyclepoolid=0;
50 -ALTER TABLE media ADD COLUMN enabled integer;
51 -UPDATE media SET enabled=1;
52 -ALTER TABLE media ADD COLUMN Comment TEXT;
53 +ALTER TABLE version ADD COLUMN product char(8);
55 -ALTER TABLE job ADD COLUMN RealEndTime timestamp without time zone;
56 -ALTER TABLE job ADD COLUMN PriorJobId integer;
57 -UPDATE job SET PriorJobId=0;
59 -ALTER TABLE jobmedia DROP COLUMN Stripe;
61 -CREATE TABLE Location (
62 - LocationId SERIAL NOT NULL,
63 - Location TEXT NOT NULL,
64 - Cost integer default 0,
66 - PRIMARY KEY (LocationId)
69 -CREATE TABLE LocationLog (
70 - LocLogId SERIAL NOT NULL,
71 - Date timestamp without time zone,
72 - Comment TEXT NOT NULL,
73 - MediaId INTEGER DEFAULT 0,
74 - LocationId INTEGER DEFAULT 0,
75 - newvolstatus text not null
76 - check (newvolstatus in ('Full','Archive','Append',
77 - 'Recycle','Purged','Read-Only','Disabled',
78 - 'Error','Busy','Used','Cleaning','Scratch')),
79 - newenabled smallint,
80 - PRIMARY KEY(LocLogId)
86 - LogId serial not null,
87 - JobId integer not null,
88 - Time timestamp without time zone,
89 - LogText text not null,
92 -create index log_name_idx on Log (JobId);
96 -INSERT INTO version (versionId) VALUES (10);
97 +INSERT INTO version (product, versionId) VALUES ('bacula', 11);
101 Index: src/cats/make_sqlite3_tables.in
102 ===================================================================
103 --- src/cats/make_sqlite3_tables.in (révision 5461)
104 +++ src/cats/make_sqlite3_tables.in (copie de travail)
106 INSERT INTO NextId (id, TableName) VALUES (1, "Job");
108 CREATE TABLE Version (
110 VersionId INTEGER UNSIGNED NOT NULL
116 -- Initialize Version
117 -INSERT INTO Version (VersionId) VALUES (10);
118 +INSERT INTO Version (Product, VersionId) VALUES ('bacula', 11);
121 PRAGMA default_cache_size = 100000;
122 Index: src/cats/update_sqlite3_tables.in
123 ===================================================================
124 --- src/cats/update_sqlite3_tables.in (révision 5461)
125 +++ src/cats/update_sqlite3_tables.in (copie de travail)
129 -# shell script to update SQLite from version 1.38 to 2.0
130 +# shell script to update SQLite from version 2.2 to 3
133 -echo "This script will update a Bacula SQLite database from version 9 to 10"
134 -echo " which is needed to convert from Bacula version 1.38.x to 2.0.x or higher"
135 +echo "This script will update a Bacula SQLite database from version 10 to 11"
136 +echo " which is needed to convert from Bacula version 2.2 to 3 or higher"
137 echo "Depending on the size of your database,"
138 echo "this script may take several minutes to run."
141 ${bindir}/${sqlite} $* ${db_name}.db <<END-OF-DATA
144 -CREATE TEMPORARY TABLE Media_backup (
145 - MediaId INTEGER UNSIGNED AUTOINCREMENT,
146 - VolumeName VARCHAR(128) NOT NULL,
147 - Slot INTEGER DEFAULT 0,
148 - PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
149 - MediaType VARCHAR(128) NOT NULL,
150 - MediaTypeId INTEGER UNSIGNED REFERENCES MediaType DEFAULT 0,
151 - LabelType TINYINT DEFAULT 0,
152 - FirstWritten DATETIME DEFAULT 0,
153 - LastWritten DATETIME DEFAULT 0,
154 - LabelDate DATETIME DEFAULT 0,
155 - VolJobs INTEGER UNSIGNED DEFAULT 0,
156 - VolFiles INTEGER UNSIGNED DEFAULT 0,
157 - VolBlocks INTEGER UNSIGNED DEFAULT 0,
158 - VolMounts INTEGER UNSIGNED DEFAULT 0,
159 - VolBytes BIGINT UNSIGNED DEFAULT 0,
160 - VolParts INTEGER UNSIGNED DEFAULT 0,
161 - VolErrors INTEGER UNSIGNED DEFAULT 0,
162 - VolWrites INTEGER UNSIGNED DEFAULT 0,
163 - VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
164 - VolStatus VARCHAR(20) NOT NULL,
165 - Enabled TINYINT DEFAULT 1,
166 - Recycle TINYINT DEFAULT 0,
167 - VolRetention BIGINT UNSIGNED DEFAULT 0,
168 - VolUseDuration BIGINT UNSIGNED DEFAULT 0,
169 - MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
170 - MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
171 - MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
172 - InChanger TINYINT DEFAULT 0,
173 - StorageId INTEGER UNSIGNED REFERENCES Storage,
174 - DeviceId INTEGER UNSIGNED REFERENCES Device,
175 - MediaAddressing TINYINT DEFAULT 0,
176 - VolReadTime BIGINT UNSIGNED DEFAULT 0,
177 - VolWriteTime BIGINT UNSIGNED DEFAULT 0,
178 - EndFile INTEGER UNSIGNED DEFAULT 0,
179 - EndBlock INTEGER UNSIGNED DEFAULT 0,
180 - LocationId INTEGER UNSIGNED REFERENCES Location,
181 - RecycleCount INTEGER UNSIGNED DEFAULT 0,
182 - InitialWrite DATETIME DEFAULT 0,
183 - ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
184 - RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
185 - PRIMARY KEY(MediaId)
189 -INSERT INTO Media_backup SELECT
190 - MediaId, VolumeName, Slot, PoolId,
191 - MediaType, LabelType, 0, FirstWritten, LastWritten,
192 - LabelDate, VolJobs, VolFiles, VolBlocks,
193 - VolMounts, VolBytes, VolParts, VolErrors, VolWrites,
194 - VolCapacityBytes, VolStatus, 1, Recycle,
195 - VolRetention, VolUseDuration, MaxVolJobs,
196 - MaxVolFiles, MaxVolBytes, InChanger,
197 - StorageId, 0, MediaAddressing,
198 - VolReadTime, VolWriteTime, EndFile, EndBlock, 0, 0, 0, 0, 0
204 -CREATE TABLE Media (
206 - VolumeName VARCHAR(128) NOT NULL,
207 - Slot INTEGER DEFAULT 0,
208 - PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
209 - MediaType VARCHAR(128) NOT NULL,
210 - MediaTypeId INTEGER UNSIGNED REFERENCES MediaType DEFAULT 0,
211 - LabelType TINYINT DEFAULT 0,
212 - FirstWritten DATETIME DEFAULT 0,
213 - LastWritten DATETIME DEFAULT 0,
214 - LabelDate DATETIME DEFAULT 0,
215 - VolJobs INTEGER UNSIGNED DEFAULT 0,
216 - VolFiles INTEGER UNSIGNED DEFAULT 0,
217 - VolBlocks INTEGER UNSIGNED DEFAULT 0,
218 - VolMounts INTEGER UNSIGNED DEFAULT 0,
219 - VolBytes BIGINT UNSIGNED DEFAULT 0,
220 - VolParts INTEGER UNSIGNED DEFAULT 0,
221 - VolErrors INTEGER UNSIGNED DEFAULT 0,
222 - VolWrites INTEGER UNSIGNED DEFAULT 0,
223 - VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
224 - VolStatus VARCHAR(20) NOT NULL,
225 - Enabled TINYINT DEFAULT 1,
226 - Recycle TINYINT DEFAULT 0,
227 - VolRetention BIGINT UNSIGNED DEFAULT 0,
228 - VolUseDuration BIGINT UNSIGNED DEFAULT 0,
229 - MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
230 - MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
231 - MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
232 - InChanger TINYINT DEFAULT 0,
233 - StorageId INTEGER UNSIGNED REFERENCES Storage DEFAULT 0,
234 - DeviceId INTEGER UNSIGNED REFERENCES Device DEFAULT 0,
235 - MediaAddressing TINYINT DEFAULT 0,
236 - VolReadTime BIGINT UNSIGNED DEFAULT 0,
237 - VolWriteTime BIGINT UNSIGNED DEFAULT 0,
238 - EndFile INTEGER UNSIGNED DEFAULT 0,
239 - EndBlock INTEGER UNSIGNED DEFAULT 0,
240 - LocationId INTEGER UNSIGNED REFERENCES Location DEFAULT 0,
241 - RecycleCount INTEGER UNSIGNED DEFAULT 0,
242 - InitialWrite DATETIME DEFAULT 0,
243 - ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
244 - RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
246 - PRIMARY KEY(MediaId)
247 +CREATE TABLE Version (
249 + VersionId INTEGER UNSIGNED NOT NULL
253 - MediaId, VolumeName, Slot, PoolId,
254 - MediaType, MediaTypeId, LabelType, FirstWritten, LastWritten,
255 - LabelDate, VolJobs, VolFiles, VolBlocks,
256 - VolMounts, VolBytes, VolParts, VolErrors, VolWrites,
257 - VolCapacityBytes, VolStatus, Enabled, Recycle,
258 - VolRetention, VolUseDuration, MaxVolJobs,
259 - MaxVolFiles, MaxVolBytes,
260 - InChanger, StorageId, DeviceId, MediaAddressing,
261 - VolReadTime, VolWriteTime,
262 - EndFile, EndBlock, LocationId, RecycleCount, InitialWrite,
263 - ScratchPoolId, RecyclePoolId)
264 - SELECT * FROM Media_backup;
265 +INSERT INTO Version (Product, VersionId) VALUES ('bacula', 11);
268 -DROP TABLE Media_backup;
269 -CREATE INDEX inx8 ON Media (PoolId);
271 -CREATE TEMPORARY TABLE job_backup
274 - Job VARCHAR(128) NOT NULL,
275 - Name VARCHAR(128) NOT NULL,
276 - Type CHAR NOT NULL,
277 - Level CHAR NOT NULL,
278 - ClientId INTEGER REFERENCES Client DEFAULT 0,
279 - JobStatus CHAR NOT NULL,
280 - SchedTime DATETIME NOT NULL,
281 - StartTime DATETIME DEFAULT 0,
282 - EndTime DATETIME DEFAULT 0,
283 - RealEndTime DATETIME DEFAULT 0,
284 - JobTDate BIGINT UNSIGNED DEFAULT 0,
285 - VolSessionId INTEGER UNSIGNED DEFAULT 0,
286 - VolSessionTime INTEGER UNSIGNED DEFAULT 0,
287 - JobFiles INTEGER UNSIGNED DEFAULT 0,
288 - JobBytes BIGINT UNSIGNED DEFAULT 0,
289 - JobErrors INTEGER UNSIGNED DEFAULT 0,
290 - JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
291 - PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
292 - FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
293 - PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
294 - PurgedFiles TINYINT DEFAULT 0,
295 - HasBase TINYINT DEFAULT 0
298 -INSERT INTO Job_backup SELECT
299 - JobId, Job, Name, Type, Level, ClientId, JobStatus,
300 - SchedTime, StartTime, EndTime, 0,
301 - JobTDate, VolSessionId, VolSessionTime,
302 - JobFiles, JobBytes, JobErrors, JobMissingFiles,
303 - PoolId, FileSetId, 0, PurgedFiles, HasBase
311 - Job VARCHAR(128) NOT NULL,
312 - Name VARCHAR(128) NOT NULL,
313 - Type CHAR NOT NULL,
314 - Level CHAR NOT NULL,
315 - ClientId INTEGER REFERENCES Client DEFAULT 0,
316 - JobStatus CHAR NOT NULL,
317 - SchedTime DATETIME NOT NULL,
318 - StartTime DATETIME DEFAULT 0,
319 - EndTime DATETIME DEFAULT 0,
320 - RealEndTime DATETIME DEFAULT 0,
321 - JobTDate BIGINT UNSIGNED DEFAULT 0,
322 - VolSessionId INTEGER UNSIGNED DEFAULT 0,
323 - VolSessionTime INTEGER UNSIGNED DEFAULT 0,
324 - JobFiles INTEGER UNSIGNED DEFAULT 0,
325 - JobBytes BIGINT UNSIGNED DEFAULT 0,
326 - JobErrors INTEGER UNSIGNED DEFAULT 0,
327 - JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
328 - PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
329 - FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
330 - PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
331 - PurgedFiles TINYINT DEFAULT 0,
332 - HasBase TINYINT DEFAULT 0,
335 -CREATE INDEX inx6 ON Job (Name);
338 - JobId, Job, Name, Type, Level, ClientId, JobStatus,
339 - SchedTime, StartTime, EndTime, RealEndTime,
340 - JobTDate, VolSessionId, VolSessionTime,
341 - JobFiles, JobBytes, JobErrors, JobMissingFiles,
342 - PoolId, FileSetId, PriorJobId, PurgedFiles, HasBase)
343 - SELECT * FROM Job_backup;
345 -DROP TABLE Job_backup;
347 -CREATE TABLE LocationLog (
349 - Date DATETIME NOT NULL,
350 - Comment TEXT NOT NULL,
351 - MediaId INTEGER UNSIGNED REFERENCES Media DEFAULT 0,
352 - LocationId INTEGER UNSIGNED REFERENCES LocationId DEFAULT 0,
353 - NewVolStatus VARCHAR(20) NOT NULL,
354 - NewEnabled TINYINT NOT NULL,
355 - PRIMARY KEY(LocLogId)
360 - JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
361 - Time DATETIME NOT NULL,
362 - LogText TEXT NOT NULL,
365 -CREATE INDEX LogInx1 ON File (JobId);
367 -CREATE TABLE Location (
368 - LocationId INTEGER,
369 - Location TEXT NOT NULL,
370 - Cost INTEGER DEFAULT 0,
372 - PRIMARY KEY(LocationId)
376 -DELETE FROM Version;
377 -INSERT INTO Version (VersionId) VALUES (10);
382 Index: src/cats/make_postgresql_tables.in
383 ===================================================================
384 --- src/cats/make_postgresql_tables.in (révision 5461)
385 +++ src/cats/make_postgresql_tables.in (copie de travail)
391 versionid integer not null
395 ('p', 'Waiting on higher priority jobs');
398 -INSERT INTO Version (VersionId) VALUES (10);
399 +INSERT INTO Version (Product, VersionId) VALUES ('bacula', 11);
401 -- Make sure we have appropriate permissions
403 Index: src/cats/update_sqlite_tables.in
404 ===================================================================
405 --- src/cats/update_sqlite_tables.in (révision 5461)
406 +++ src/cats/update_sqlite_tables.in (copie de travail)
410 -# shell script to update SQLite from version 1.38 to 2.0
411 +# shell script to update SQLite from version 2.2 to 3
414 -echo "This script will update a Bacula SQLite database from version 9 to 10"
415 -echo " which is needed to convert from Bacula version 1.38.x to 2.0.x or higher"
416 +echo "This script will update a Bacula SQLite database from version 10 to 11"
417 +echo " which is needed to convert from Bacula version 2.2 to 3 or higher"
418 echo "Depending on the size of your database,"
419 echo "this script may take several minutes to run."
422 ${bindir}/${sqlite} $* ${db_name}.db <<END-OF-DATA
425 -CREATE TEMPORARY TABLE Media_backup (
426 - MediaId INTEGER UNSIGNED AUTOINCREMENT,
427 - VolumeName VARCHAR(128) NOT NULL,
428 - Slot INTEGER DEFAULT 0,
429 - PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
430 - MediaType VARCHAR(128) NOT NULL,
431 - MediaTypeId INTEGER UNSIGNED REFERENCES MediaType DEFAULT 0,
432 - LabelType TINYINT DEFAULT 0,
433 - FirstWritten DATETIME DEFAULT 0,
434 - LastWritten DATETIME DEFAULT 0,
435 - LabelDate DATETIME DEFAULT 0,
436 - VolJobs INTEGER UNSIGNED DEFAULT 0,
437 - VolFiles INTEGER UNSIGNED DEFAULT 0,
438 - VolBlocks INTEGER UNSIGNED DEFAULT 0,
439 - VolMounts INTEGER UNSIGNED DEFAULT 0,
440 - VolBytes BIGINT UNSIGNED DEFAULT 0,
441 - VolParts INTEGER UNSIGNED DEFAULT 0,
442 - VolErrors INTEGER UNSIGNED DEFAULT 0,
443 - VolWrites INTEGER UNSIGNED DEFAULT 0,
444 - VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
445 - VolStatus VARCHAR(20) NOT NULL,
446 - Enabled TINYINT DEFAULT 1,
447 - Recycle TINYINT DEFAULT 0,
448 - VolRetention BIGINT UNSIGNED DEFAULT 0,
449 - VolUseDuration BIGINT UNSIGNED DEFAULT 0,
450 - MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
451 - MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
452 - MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
453 - InChanger TINYINT DEFAULT 0,
454 - StorageId INTEGER UNSIGNED REFERENCES Storage,
455 - DeviceId INTEGER UNSIGNED REFERENCES Device,
456 - MediaAddressing TINYINT DEFAULT 0,
457 - VolReadTime BIGINT UNSIGNED DEFAULT 0,
458 - VolWriteTime BIGINT UNSIGNED DEFAULT 0,
459 - EndFile INTEGER UNSIGNED DEFAULT 0,
460 - EndBlock INTEGER UNSIGNED DEFAULT 0,
461 - LocationId INTEGER UNSIGNED REFERENCES Location,
462 - RecycleCount INTEGER UNSIGNED DEFAULT 0,
463 - InitialWrite DATETIME DEFAULT 0,
464 - ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
465 - RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
466 - PRIMARY KEY(MediaId)
470 -INSERT INTO Media_backup SELECT
471 - MediaId, VolumeName, Slot, PoolId,
472 - MediaType, LabelType, 0, FirstWritten, LastWritten,
473 - LabelDate, VolJobs, VolFiles, VolBlocks,
474 - VolMounts, VolBytes, VolParts, VolErrors, VolWrites,
475 - VolCapacityBytes, VolStatus, 1, Recycle,
476 - VolRetention, VolUseDuration, MaxVolJobs,
477 - MaxVolFiles, MaxVolBytes, InChanger,
478 - StorageId, 0, MediaAddressing,
479 - VolReadTime, VolWriteTime, EndFile, EndBlock, 0, 0, 0, 0, 0
485 -CREATE TABLE Media (
487 - VolumeName VARCHAR(128) NOT NULL,
488 - Slot INTEGER DEFAULT 0,
489 - PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
490 - MediaType VARCHAR(128) NOT NULL,
491 - MediaTypeId INTEGER UNSIGNED REFERENCES MediaType DEFAULT 0,
492 - LabelType TINYINT DEFAULT 0,
493 - FirstWritten DATETIME DEFAULT 0,
494 - LastWritten DATETIME DEFAULT 0,
495 - LabelDate DATETIME DEFAULT 0,
496 - VolJobs INTEGER UNSIGNED DEFAULT 0,
497 - VolFiles INTEGER UNSIGNED DEFAULT 0,
498 - VolBlocks INTEGER UNSIGNED DEFAULT 0,
499 - VolMounts INTEGER UNSIGNED DEFAULT 0,
500 - VolBytes BIGINT UNSIGNED DEFAULT 0,
501 - VolParts INTEGER UNSIGNED DEFAULT 0,
502 - VolErrors INTEGER UNSIGNED DEFAULT 0,
503 - VolWrites INTEGER UNSIGNED DEFAULT 0,
504 - VolCapacityBytes BIGINT UNSIGNED DEFAULT 0,
505 - VolStatus VARCHAR(20) NOT NULL,
506 - Enabled TINYINT DEFAULT 1,
507 - Recycle TINYINT DEFAULT 0,
508 - VolRetention BIGINT UNSIGNED DEFAULT 0,
509 - VolUseDuration BIGINT UNSIGNED DEFAULT 0,
510 - MaxVolJobs INTEGER UNSIGNED DEFAULT 0,
511 - MaxVolFiles INTEGER UNSIGNED DEFAULT 0,
512 - MaxVolBytes BIGINT UNSIGNED DEFAULT 0,
513 - InChanger TINYINT DEFAULT 0,
514 - StorageId INTEGER UNSIGNED REFERENCES Storage DEFAULT 0,
515 - DeviceId INTEGER UNSIGNED REFERENCES Device DEFAULT 0,
516 - MediaAddressing TINYINT DEFAULT 0,
517 - VolReadTime BIGINT UNSIGNED DEFAULT 0,
518 - VolWriteTime BIGINT UNSIGNED DEFAULT 0,
519 - EndFile INTEGER UNSIGNED DEFAULT 0,
520 - EndBlock INTEGER UNSIGNED DEFAULT 0,
521 - LocationId INTEGER UNSIGNED REFERENCES Location DEFAULT 0,
522 - RecycleCount INTEGER UNSIGNED DEFAULT 0,
523 - InitialWrite DATETIME DEFAULT 0,
524 - ScratchPoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
525 - RecyclePoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
527 - PRIMARY KEY(MediaId)
528 +CREATE TABLE Version (
530 + VersionId INTEGER UNSIGNED NOT NULL
534 - MediaId, VolumeName, Slot, PoolId,
535 - MediaType, MediaTypeId, LabelType, FirstWritten, LastWritten,
536 - LabelDate, VolJobs, VolFiles, VolBlocks,
537 - VolMounts, VolBytes, VolParts, VolErrors, VolWrites,
538 - VolCapacityBytes, VolStatus, Enabled, Recycle,
539 - VolRetention, VolUseDuration, MaxVolJobs,
540 - MaxVolFiles, MaxVolBytes,
541 - InChanger, StorageId, DeviceId, MediaAddressing,
542 - VolReadTime, VolWriteTime,
543 - EndFile, EndBlock, LocationId, RecycleCount, InitialWrite,
544 - ScratchPoolId, RecyclePoolId)
545 - SELECT * FROM Media_backup;
546 +INSERT INTO Version (Product, VersionId) VALUES ('bacula', 11);
549 -DROP TABLE Media_backup;
550 -CREATE INDEX inx8 ON Media (PoolId);
552 -CREATE TEMPORARY TABLE job_backup
555 - Job VARCHAR(128) NOT NULL,
556 - Name VARCHAR(128) NOT NULL,
557 - Type CHAR NOT NULL,
558 - Level CHAR NOT NULL,
559 - ClientId INTEGER REFERENCES Client DEFAULT 0,
560 - JobStatus CHAR NOT NULL,
561 - SchedTime DATETIME NOT NULL,
562 - StartTime DATETIME DEFAULT 0,
563 - EndTime DATETIME DEFAULT 0,
564 - RealEndTime DATETIME DEFAULT 0,
565 - JobTDate BIGINT UNSIGNED DEFAULT 0,
566 - VolSessionId INTEGER UNSIGNED DEFAULT 0,
567 - VolSessionTime INTEGER UNSIGNED DEFAULT 0,
568 - JobFiles INTEGER UNSIGNED DEFAULT 0,
569 - JobBytes BIGINT UNSIGNED DEFAULT 0,
570 - JobErrors INTEGER UNSIGNED DEFAULT 0,
571 - JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
572 - PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
573 - FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
574 - PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
575 - PurgedFiles TINYINT DEFAULT 0,
576 - HasBase TINYINT DEFAULT 0
579 -INSERT INTO Job_backup SELECT
580 - JobId, Job, Name, Type, Level, ClientId, JobStatus,
581 - SchedTime, StartTime, EndTime, 0,
582 - JobTDate, VolSessionId, VolSessionTime,
583 - JobFiles, JobBytes, JobErrors, JobMissingFiles,
584 - PoolId, FileSetId, 0, PurgedFiles, HasBase
592 - Job VARCHAR(128) NOT NULL,
593 - Name VARCHAR(128) NOT NULL,
594 - Type CHAR NOT NULL,
595 - Level CHAR NOT NULL,
596 - ClientId INTEGER REFERENCES Client DEFAULT 0,
597 - JobStatus CHAR NOT NULL,
598 - SchedTime DATETIME NOT NULL,
599 - StartTime DATETIME DEFAULT 0,
600 - EndTime DATETIME DEFAULT 0,
601 - RealEndTime DATETIME DEFAULT 0,
602 - JobTDate BIGINT UNSIGNED DEFAULT 0,
603 - VolSessionId INTEGER UNSIGNED DEFAULT 0,
604 - VolSessionTime INTEGER UNSIGNED DEFAULT 0,
605 - JobFiles INTEGER UNSIGNED DEFAULT 0,
606 - JobBytes BIGINT UNSIGNED DEFAULT 0,
607 - JobErrors INTEGER UNSIGNED DEFAULT 0,
608 - JobMissingFiles INTEGER UNSIGNED DEFAULT 0,
609 - PoolId INTEGER UNSIGNED REFERENCES Pool DEFAULT 0,
610 - FileSetId INTEGER UNSIGNED REFERENCES FileSet DEFAULT 0,
611 - PriorJobId INTEGER UNSIGNED REFERENCES Job DEFAULT 0,
612 - PurgedFiles TINYINT DEFAULT 0,
613 - HasBase TINYINT DEFAULT 0,
616 -CREATE INDEX inx6 ON Job (Name);
619 - JobId, Job, Name, Type, Level, ClientId, JobStatus,
620 - SchedTime, StartTime, EndTime, RealEndTime,
621 - JobTDate, VolSessionId, VolSessionTime,
622 - JobFiles, JobBytes, JobErrors, JobMissingFiles,
623 - PoolId, FileSetId, PriorJobId, PurgedFiles, HasBase)
624 - SELECT * FROM Job_backup;
626 -DROP TABLE Job_backup;
628 -CREATE TABLE LocationLog (
630 - Date DATETIME NOT NULL,
631 - Comment TEXT NOT NULL,
632 - MediaId INTEGER UNSIGNED REFERENCES Media DEFAULT 0,
633 - LocationId INTEGER UNSIGNED REFERENCES LocationId DEFAULT 0,
634 - NewVolStatus VARCHAR(20) NOT NULL,
635 - NewEnabled TINYINT NOT NULL,
636 - PRIMARY KEY(LocLogId)
641 - JobId INTEGER UNSIGNED REFERENCES Job NOT NULL,
642 - Time DATETIME NOT NULL,
643 - LogText TEXT NOT NULL,
646 -CREATE INDEX LogInx1 ON File (JobId);
648 -CREATE TABLE Location (
649 - LocationId INTEGER,
650 - Location TEXT NOT NULL,
651 - Cost INTEGER DEFAULT 0,
653 - PRIMARY KEY(LocationId)
657 -DELETE FROM Version;
658 -INSERT INTO Version (VersionId) VALUES (10);
663 Index: src/cats/update_mysql_tables.in
664 ===================================================================
665 --- src/cats/update_mysql_tables.in (révision 5461)
666 +++ src/cats/update_mysql_tables.in (copie de travail)
670 -# Shell script to update MySQL tables from version 1.38 to 2.0
671 +# Shell script to update MySQL tables from version 2.2 to 3
674 -echo "This script will update a Bacula MySQL database from version 9 to 10"
675 -echo " which is needed to convert from Bacula version 1.38.x to 2.0.x or higher"
676 +echo "This script will update a Bacula MySQL database from version 10 to 11"
677 +echo " which is needed to convert from Bacula version 2.2 to 3 or higher"
678 echo "Depending on the size of your database,"
679 echo "this script may take several minutes to run."
682 if $bindir/mysql $* -f <<END-OF-DATA
685 -DROP TABLE IF EXISTS MAC;
686 -DROP TABLE IF EXISTS Log;
687 -DROP TABLE IF EXISTS Location;
688 -DROP TABLE IF EXISTS LocationLog;
689 +ALTER TABLE Version ADD COLUMN Product char(8) default '';
692 - LogId INTEGER UNSIGNED AUTO_INCREMENT,
693 - JobId INTEGER UNSIGNED DEFAULT 0 REFERENCES Job,
694 - Time DATETIME DEFAULT 0,
695 - LogText BLOB NOT NULL,
696 - PRIMARY KEY(LogId),
700 -CREATE TABLE Location (
701 - LocationId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
702 - Location TINYBLOB NOT NULL,
703 - Cost INTEGER DEFAULT 0,
705 - PRIMARY KEY(LocationId)
708 -CREATE TABLE LocationLog (
709 - LocLogId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
710 - Date DATETIME DEFAULT 0,
712 - MediaId INTEGER UNSIGNED DEFAULT 0 REFERENCES Media,
713 - LocationId INTEGER UNSIGNED DEFAULT 0 REFERENCES Location,
714 - NewVolStatus ENUM('Full', 'Archive', 'Append', 'Recycle', 'Purged',
715 - 'Read-Only', 'Disabled', 'Error', 'Busy', 'Used', 'Cleaning') NOT NULL,
716 - NewEnabled TINYINT,
717 - PRIMARY KEY(LocLogId)
720 -ALTER TABLE Media ADD COLUMN MediaTypeId INTEGER UNSIGNED DEFAULT 0 REFERENCES MediaType;
721 -ALTER TABLE Media ADD COLUMN DeviceId INTEGER UNSIGNED DEFAULT 0 REFERENCES Device;
722 -ALTER TABLE Media ADD COLUMN LocationId INTEGER UNSIGNED DEFAULT 0 REFERENCES Location;
723 -ALTER TABLE Media ADD COLUMN RecycleCount INTEGER UNSIGNED DEFAULT 0;
724 -ALTER TABLE Media ADD COLUMN InitialWrite DATETIME DEFAULT 0;
725 -ALTER TABLE Media ADD COLUMN ScratchPoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool;
726 -ALTER TABLE Media ADD COLUMN RecyclePoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool;
727 -ALTER TABLE Media ADD COLUMN Enabled TINYINT DEFAULT 1;
728 -ALTER TABLE Media ADD COLUMN Comment BLOB;
730 -ALTER TABLE JobMedia DROP COLUMN Stripe;
732 -ALTER TABLE Job ADD COLUMN PriorJobId INTEGER UNSIGNED DEFAULT 0 REFERENCES Job;
733 -ALTER TABLE Job ADD COLUMN RealEndTime DATETIME DEFAULT 0;
738 -INSERT INTO Version (VersionId) VALUES (10);
739 +INSERT INTO Version (Product, VersionId) VALUES ('bacula', 11);
743 Index: src/cats/make_sqlite_tables.in
744 ===================================================================
745 --- src/cats/make_sqlite_tables.in (révision 5461)
746 +++ src/cats/make_sqlite_tables.in (copie de travail)
748 INSERT INTO NextId (id, TableName) VALUES (1, "Job");
750 CREATE TABLE Version (
752 VersionId INTEGER UNSIGNED NOT NULL
758 -- Initialize Version
759 -INSERT INTO Version (VersionId) VALUES (10);
760 +INSERT INTO Version (Product, VersionId) VALUES ('bacula', 11);
763 PRAGMA default_synchronous = OFF;
764 Index: src/cats/make_mysql_tables.in
765 ===================================================================
766 --- src/cats/make_mysql_tables.in (révision 5461)
767 +++ src/cats/make_mysql_tables.in (copie de travail)
768 @@ -328,11 +328,12 @@
769 ('p', 'Waiting on higher priority jobs');
771 CREATE TABLE Version (
772 - VersionId INTEGER UNSIGNED NOT NULL
774 + VersionId INTEGER UNSIGNED NOT NULL,
777 -- Initialize Version
778 -INSERT INTO Version (VersionId) VALUES (10);
779 +INSERT INTO Version (Product, VersionId) VALUES ('bacula', 11);