]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/updatedb/update_postgresql_tables_10_to_11.in
Fix update_postgresql_tables 10 to 11
[bacula/bacula] / bacula / updatedb / update_postgresql_tables_10_to_11.in
index 97ecee2650bce3c55cffc0729fd966a21441b8a1..1be8033d7baff9afb6cac8f23c9260246162a3bd 100644 (file)
@@ -1,80 +1,38 @@
 #!/bin/sh
 #
-# Shell script to update PostgreSQL tables from version 1.38 to 2.0.0 or higher
+# Shell script to update PostgreSQL tables from version 2.0.0 to 3.0.0 or higher
 #
 echo " "
-echo "This script will update a Bacula PostgreSQL database from version 9 to 10"
-echo " which is needed to convert from Bacula version 1.38.x to 2.0.0 or higher"
-echo "Depending on the size of your database,"
-echo "this script may take several minutes to run."
+echo "This script will update a Bacula PostgreSQL database from version 10 to 11"
+echo " which is needed to convert from Bacula version 2.0.0 to 3.0.x or higher"
 echo " "
-bindir=@SQL_BINDIR@
-db_name=@db_name@
+bindir=@POSTGRESQL_BINDIR@
+PATH="$bindir:$PATH"
+db_name=${db_name:-@db_name@}
 
-if $bindir/psql -f - -d ${db_name} $* <<END-OF-DATA
+if psql -f - -d ${db_name} $* <<END-OF-DATA
+-- The alter table operation can be faster with a big maintenance_work_mem
+-- Uncomment and adapt this value to your environment
+-- SET maintenance_work_mem = '1GB';
 
-ALTER TABLE media ADD COLUMN DeviceId integer;
-UPDATE media SET DeviceId=0;
-ALTER TABLE media ADD COLUMN MediaTypeId integer;
-UPDATE media SET MediaTypeId=0;
-ALTER TABLE media ADD COLUMN LocationId integer;
-UPDATE media SET LocationId=0;
-ALTER TABLE media ADD COLUMN RecycleCount integer;
-UPDATE media SET RecycleCount=0;
-ALTER TABLE media ADD COLUMN InitialWrite timestamp without time zone;
-ALTER TABLE media ADD COLUMN scratchpoolid integer;
-UPDATE media SET scratchpoolid=0;
-ALTER TABLE media ADD COLUMN recyclepoolid integer;
-UPDATE media SET recyclepoolid=0;
-ALTER TABLE media ADD COLUMN enabled integer;
-UPDATE media SET enabled=1;
-ALTER TABLE media ADD COLUMN Comment TEXT;
+BEGIN;
+ALTER TABLE file ALTER fileid TYPE bigint ;
+ALTER TABLE basefiles ALTER fileid TYPE bigint;
+ALTER TABLE job ADD COLUMN readbytes bigint default 0;
+ALTER TABLE media ADD COLUMN ActionOnPurge smallint default 0;
+ALTER TABLE pool ADD COLUMN ActionOnPurge smallint default 0;
 
-ALTER TABLE job ADD COLUMN RealEndTime timestamp without time zone;
-ALTER TABLE job ADD COLUMN PriorJobId integer;
-UPDATE job SET PriorJobId=0;
+-- Create a table like Job for long term statistics
+CREATE TABLE JobHisto (LIKE Job);
+CREATE INDEX jobhisto_idx ON JobHisto ( starttime );
 
-ALTER TABLE jobmedia DROP COLUMN Stripe;
+UPDATE Version SET VersionId=11;
+COMMIT;
 
-CREATE TABLE Location (
-   LocationId SERIAL NOT NULL,
-   Location TEXT NOT NULL,
-   Cost integer default 0,
-   Enabled integer,
-   PRIMARY KEY (LocationId)
-);
-
-CREATE TABLE LocationLog (
-   LocLogId SERIAL NOT NULL,
-   Date timestamp   without time zone,
-   Comment TEXT NOT NULL,
-   MediaId INTEGER DEFAULT 0,
-   LocationId INTEGER DEFAULT 0,
-   newvolstatus text not null
-       check (newvolstatus in ('Full','Archive','Append',
-             'Recycle','Purged','Read-Only','Disabled',
-             'Error','Busy','Used','Cleaning','Scratch')),
-   newenabled smallint,
-   PRIMARY KEY(LocLogId)
-);
-
-
-CREATE TABLE Log
-(
-    LogId            serial      not null,
-    JobId            integer     not null,
-    Time             timestamp   without time zone,
-    LogText          text        not null,
-    primary key (LogId)
-);
-create index log_name_idx on Log (JobId);
-
-
-DELETE FROM version;
-INSERT INTO version (versionId) VALUES (10);
-
-vacuum;
+-- If you have already this table, you can remove it with:
+-- DROP TABLE JobHistory;
 
+-- vacuum analyse;
 END-OF-DATA
 then
    echo "Update of Bacula PostgreSQL tables succeeded."