From b007bfa9a90238763f7bc634fb93cbecdbf44e4c Mon Sep 17 00:00:00 2001 From: R4SAS Date: Wed, 25 Apr 2018 08:07:55 +0000 Subject: [PATCH] add database upgrade script, update version in initial database --- sql/000_base_structure.sql | 2 +- upgrade/definitions/1.0.2_to_1.0.3.inc.php | 36 ++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 upgrade/definitions/1.0.2_to_1.0.3.inc.php diff --git a/sql/000_base_structure.sql b/sql/000_base_structure.sql index 35a47631..88101fce 100644 --- a/sql/000_base_structure.sql +++ b/sql/000_base_structure.sql @@ -142,7 +142,7 @@ CREATE TABLE IF NOT EXISTS `settings` ( UNIQUE KEY `setting` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO `settings` (`name`, `value`) VALUES ('DB_VERSION', '1.0.2'); +INSERT INTO `settings` (`name`, `value`) VALUES ('DB_VERSION', '1.0.3'); CREATE TABLE IF NOT EXISTS `shares` ( `id` bigint(30) NOT NULL AUTO_INCREMENT, diff --git a/upgrade/definitions/1.0.2_to_1.0.3.inc.php b/upgrade/definitions/1.0.2_to_1.0.3.inc.php new file mode 100644 index 00000000..0a9cd750 --- /dev/null +++ b/upgrade/definitions/1.0.2_to_1.0.3.inc.php @@ -0,0 +1,36 @@ +getValue('DB_VERSION'); // Our actual version installed + + // Upgrade specific variables + $aSql[] = " + ALTER TABLE `statistics_shares` + CHANGE `valid` `valid` BIGINT(20) NOT NULL DEFAULT '0', + CHANGE `invalid` `invalid` BIGINT(20) NOT NULL DEFAULT '0', + CHANGE `pplns_valid` `pplns_valid` BIGINT(20) NOT NULL DEFAULT '0', + CHANGE `pplns_invalid` `pplns_invalid` BIGINT(20) NOT NULL DEFAULT '0'; + "; + $aSql[] = "UPDATE " . $setting->getTableName() . " SET value = '" . $db_version_new . "' WHERE name = 'DB_VERSION';"; + + if ($db_version_now == $db_version_old && version_compare($db_version_now, DB_VERSION, '<')) { + // Run the upgrade + echo '- Starting database migration to version ' . $db_version_new . PHP_EOL; + foreach ($aSql as $sql) { + echo '- Preparing: ' . $sql . PHP_EOL; + $stmt = $mysqli->prepare($sql); + if ($stmt && $stmt->execute()) { + echo '- success' . PHP_EOL; + } else { + echo '- failed: ' . $mysqli->error . PHP_EOL; + exit(1); + } + } + } +} +?>