diff --git a/sql/update/all.sql b/sql/update/all.sql index a304909b8..045ab0f1e 100644 --- a/sql/update/all.sql +++ b/sql/update/all.sql @@ -203,4 +203,10 @@ ADD COLUMN init_time integer; -- Add end_time to template table to copy the task _end value -- ALTER TABLE template -ADD COLUMN end_time integer; \ No newline at end of file +ADD COLUMN end_time integer; + +-- +-- Set database version to 2.21 +-- + +UPDATE config SET version='2.21'; diff --git a/sql/update/bump-db-version-2-21.sql b/sql/update/bump-db-version-2-21.sql new file mode 100644 index 000000000..ef1647a8a --- /dev/null +++ b/sql/update/bump-db-version-2-21.sql @@ -0,0 +1,5 @@ +-- +-- Set database version to 2.21 +-- + +UPDATE config SET version='2.21'; diff --git a/update/update-from-2.20-to-2.21.php b/update/update-from-2.20-to-2.21.php new file mode 100644 index 000000000..51c26af7e --- /dev/null +++ b/update/update-from-2.20-to-2.21.php @@ -0,0 +1,60 @@ + + * + * This file is part of PhpReport. + * + * PhpReport is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * PhpReport is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with PhpReport. If not, see . + */ + +require_once('utils.php'); + +define('PHPREPORT_ROOT', __DIR__ . '/../'); +define('SQLPATH', PHPREPORT_ROOT . 'sql/update/'); + +/* These are the sql files that must be executed to prepare DB. + * + * IMPORTANT: they must be ordered for their proper execution. + */ +$sqlFiles = array(); +$sqlFiles[] = SQLPATH . "add-init-end-to-template-table.sql"; +$sqlFiles[] = SQLPATH . "bump-db-version-2-21.sql"; + +// run upgrade scripts + +require_once(PHPREPORT_ROOT . 'config/config.php'); + +if (strcmp(get_db_version(DB_HOST,DB_PORT,DB_NAME,DB_USER,DB_PASSWORD), "2.18") != 0) { + print ("Wrong database version. " . + "Make sure DB is on 2.18 version before running this upgrade.\n"); + exit(); +} + +$success = true; +foreach ($sqlFiles as $file) { + if (!parse_psql_dump($file,DB_HOST,DB_PORT,DB_NAME,DB_USER,DB_PASSWORD)) { + $success = false; + break; + } +} + +// finish, print message + +if ($success) { + print ("Database update completed successfully\n"); +} +else { + print ("Error updating database in step: " . $file . + "\nPlease consider doing a manual update\n"); +}