]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/cats/update_postgresql_tables.in
- Tweak catalog make scripts.
[bacula/bacula] / bacula / src / cats / update_postgresql_tables.in
1 #!/bin/sh
2 #
3 # Shell script to update PostgreSQL tables from version 1.38 to 1.39
4 #
5 echo " "
6 echo "This script will update a Bacula SQLite database from version 9 to 10"
7 echo " which is needed to convert from Bacula version 1.38.x to 1.39.x or higher"
8 echo "Depending on the size of your database,"
9 echo "this script may take several minutes to run."
10 echo " "
11 bindir=@SQL_BINDIR@
12
13 if $bindir/psql -f - -d bacula $* <<END-OF-DATA
14
15 ALTER TABLE media ADD COLUMN DeviceId integer;
16 UPDATE media SET DeviceId=0;
17 ALTER TABLE media ADD COLUMN MediaTypeId integer;
18 UPDATE media SET MediaTypeId=0;
19 ALTER TABLE media ADD COLUMN LocationId integer;
20 UPDATE media SET LocationId=0;
21 ALTER TABLE media ADD COLUMN RecycleCount integer;
22 UPDATE media SET RecycleCount=0;
23 ALTER TABLE media ADD COLUMN InitialWrite timestamp without time zone;
24 ALTER TABLE media ADD COLUMN scratchpoolid integer;
25 UPDATE media SET scratchpoolid=0;
26 ALTER TABLE media ADD COLUMN recyclepoolid integer;
27 UPDATE media SET recyclepoolid=0;
28 ALTER TABLE media ADD COLUMN enabled integer;
29 UPDATE media SET enabled=1;
30 ALTER TABLE media ADD COLUMN Comment TEXT;
31
32 ALTER TABLE job ADD COLUMN RealEndTime timestamp without time zone;
33 ALTER TABLE job ADD COLUMN PriorJobId integer;
34 UPDATE job SET PriorJobId=0;
35
36 ALTER TABLE jobmedia DROP COLUMN Stripe;
37
38 CREATE TABLE Location (
39    LocationId SERIAL NOT NULL,
40    Location TEXT NOT NULL,
41    Cost integer default 0,
42    Enabled integer,
43    PRIMARY KEY (LocationId)
44 );
45
46 CREATE TABLE LocationLog (
47    LocLogId SERIAL NOT NULL,
48    Date timestamp   without time zone,
49    Comment TEXT NOT NULL,
50    MediaId INTEGER DEFAULT 0,
51    LocationId INTEGER DEFAULT 0,
52    newvolstatus text not null
53         check (newvolstatus in ('Full','Archive','Append',
54               'Recycle','Purged','Read-Only','Disabled',
55               'Error','Busy','Used','Cleaning','Scratch')),
56    newenabled smallint,
57    PRIMARY KEY(LocLogId)
58 );
59
60
61 CREATE TABLE Log
62 (
63     LogId             serial      not null,
64     JobId             integer     not null,
65     Time              timestamp   without time zone,
66     LogText           text        not null,
67     primary key (LogId)
68 );
69 create index log_name_idx on Log (JobId);
70
71
72 DELETE FROM version;
73 INSERT INTO version (versionId) VALUES (10);
74
75 vacuum;
76
77 END-OF-DATA
78 then
79    echo "Update of Bacula PostgreSQL tables succeeded."
80 else
81    echo "Update of Bacula PostgreSQL tables failed."
82 fi
83 exit 0