LP#1715503: make upgrade script abort if not running min support version
authorGalen Charlton <gmc@equinoxinitiative.org>
Wed, 20 Sep 2017 15:23:29 +0000 (11:23 -0400)
committerMike Rylander <mrylander@gmail.com>
Wed, 20 Sep 2017 21:43:57 +0000 (17:43 -0400)
This patch causes the monolithic upgrade script to fail if the
database its connecting to isn't running at least Pg 9.4.

To test
-------
[1] Verify that 2.12.5-3.0-beta1-upgrade-db.sql will abort
    if used in a Pg database < 9.4; verify that it will work
    if the Pg version is at least 9.4

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/sql/Pg/version-upgrade/2.12.5-3.0-beta1-upgrade-db.sql

index d10e316..e8e585b 100644 (file)
@@ -1,5 +1,23 @@
 --Upgrade Script for 2.12.5 to 3.0-beta1
 \set eg_version '''3.0-beta1'''
+
+-- verify that we're running a recent enough version of Pg
+\set ON_ERROR_STOP on
+BEGIN;
+
+DO $$
+   DECLARE ver INTEGER;
+   BEGIN
+      SELECT current_setting('server_version_num') INTO ver;
+      IF (ver < 90400) THEN
+         RAISE EXCEPTION 'Not running a new enough version of PostgreSQL. Minimum required is 9.4; you have %', ver;
+      END IF;
+   END;
+$$;
+
+COMMIT;
+\set ON_ERROR_STOP off
+
 BEGIN;
 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.0-beta1', :eg_version);