From 5155fa4b41da6ce6a60ac99a548fc5533ad8fdb5 Mon Sep 17 00:00:00 2001 From: Joe Prochazka Date: Wed, 27 Apr 2016 19:50:37 -0400 Subject: [PATCH] Work on install/upgrade scripts. --- build/portal/html/install/install.php | 24 +++---- build/portal/html/install/upgrade.php | 95 +++++++++++++-------------- 2 files changed, 59 insertions(+), 60 deletions(-) diff --git a/build/portal/html/install/install.php b/build/portal/html/install/install.php index 54ac2bf..de42cee 100644 --- a/build/portal/html/install/install.php +++ b/build/portal/html/install/install.php @@ -189,12 +189,12 @@ EOF; $aircraftSql = 'CREATE TABLE '.$dbPrifix.'aircraft( id INT(11) AUTO_INCREMENT PRIMARY KEY, icao VARCHAR(24) NOT NULL, - firstSeen VARCHAR(100) NOT NULL, - lastSeen VARCHAR(100) NOT NULL);'; + firstSeen datetime NOT NULL, + lastSeen datetime NOT NULL);'; $blogPostsSql = 'CREATE TABLE '.$dbPrifix.'blogPosts ( id INT(11) PRIMARY KEY AUTO_INCREMENT, title VARCHAR(100) NOT NULL, - date VARCHAR(20) NOT NULL, + date datetime NOT NULL, author VARCHAR(100) NOT NULL, contents VARCHAR(20000) NOT NULL);'; $flightNotificationsSql = 'CREATE TABLE '.$dbPrifix.'flightNotifications ( @@ -204,12 +204,12 @@ EOF; id INT(11) AUTO_INCREMENT PRIMARY KEY, aircraft INT(11) NOT NULL, flight VARCHAR(100) NOT NULL, - firstSeen VARCHAR(100) NOT NULL, - lastSeen VARCHAR(100) NOT NULL);'; + firstSeen datetime NOT NULL, + lastSeen datetime NOT NULL);'; $positionsSql = 'CREATE TABLE adsb_positions( id INT(11) AUTO_INCREMENT PRIMARY KEY, flight BIGINT NOT NULL, - time VARCHAR(100) NOT NULL, + time datetime NOT NULL, message INT NOT NULL, squawk INT(4) NULL, latitude DOUBLE NOT NULL, @@ -279,12 +279,12 @@ EOF; $aircraftSql = 'CREATE TABLE '.$dbPrifix.'aircraft( id INTEGER PRIMARY KEY AUTOINCREMENT, icao TEXT NOT NULL, - firstSeen TEXT NOT NULL, - lastSeen TEXT NOT NULL);'; + firstSeen DATETIME NOT NULL, + lastSeen DATETIME NOT NULL);'; $blogPostsSql = 'CREATE TABLE '.$dbPrifix.'blogPosts ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, - date TEXT NOT NULL, + date DATETIME NOT NULL, author TEXT NOT NULL, contents TEXT NOT NULL);'; $flightNotificationsSql = 'CREATE TABLE '.$dbPrifix.'flightNotifications ( @@ -294,12 +294,12 @@ EOF; id INTEGER PRIMARY KEY AUTOINCREMENT, aircraft INTEGER NOT NULL, flight TEXT NOT NULL, - firstSeen TEXT NOT NULL, - lastSeen TEXT NOT NULL);'; + firstSeen DATETIME NOT NULL, + lastSeen DATETIME NOT NULL);'; $positionsSql = 'CREATE TABLE adsb_positions( id INTEGER PRIMARY KEY AUTOINCREMENT, flight TEXT NOT NULL, - time TEXT NOT NULL, + time DATETIME NOT NULL, message INTEGER NOT NULL, squawk INTEGER NULL, latitude INTEGER NOT NULL, diff --git a/build/portal/html/install/upgrade.php b/build/portal/html/install/upgrade.php index 49346d6..bf90c65 100644 --- a/build/portal/html/install/upgrade.php +++ b/build/portal/html/install/upgrade.php @@ -32,55 +32,54 @@ require_once('../classes/settings.class.php'); $common = new common(); - $settings = new setting(); + $settings = new settings(); - // Convert local times stored in the database to UNIX timestamps time. - if ($settings::db_driver != "xml") { - - $dbh = $this->pdoOpen(); - $sql = "SELECT id, firstSeen, lastSeen FROM ".$settings::db_prefix."positions"; - $sth = $dbh->prepare($sql); - $sth->execute(); - $flights = $sth->fetchAll(); - $sth = NULL; - $dbh = NULL; - - foreach ($flights as $flight) { - $utcFirstSeen = gmdate("M d Y H:i:s", strtotime($flight['firstSeen'])); - $utcLastSeen = gmdate("M d Y H:i:s", strtotime($flight['lastSeen'])); - - $dbh = $this->pdoOpen(); - $sql = "UPDATE ".$settings::db_prefix."positions SET firstSeen = :firstSeen, lastSeen = :lastSeen WHERE id = :id"; - $sth = $dbh->prepare($sql); - $sth->bindParam(':firstSeen', $utcFirstSeen, PDO::PARAM_STR); - $sth->bindParam(':lastSeen', $utcLastSeen, PDO::PARAM_STR); - $sth->bindParam(':id', $flight['id'], PDO::PARAM_INT); - $sth->execute(); - $sth = NULL; - $dbh = NULL; - - } - - $dbh = $this->pdoOpen(); - $sql = "SELECT id, time FROM ".$settings::db_prefix."positions"; - $sth = $dbh->prepare($sql); - $sth->execute(); - $positions = $sth->fetchAll(); - $sth = NULL; - $dbh = NULL; - - foreach ($positions as $position) { - $utcTime = gmdate("M d Y H:i:s", strtotime($flight['time'])); - - $dbh = $this->pdoOpen(); - $sql = "UPDATE ".$settings::db_prefix."positions SET time = :time WHERE id = :id"; - $sth = $dbh->prepare($sql); - $sth->bindParam(':time', $utcTime, PDO::PARAM_STR); - $sth->bindParam(':id', $flight['id'], PDO::PARAM_INT); - $sth->execute(); - $sth = NULL; - $dbh = NULL; - } + // The most current stable release. + $thisVersion = "2.0.1"; + // Begin the upgrade process if this release is newer than what is installed. + if ($common->getSetting("version") == $thisVersion) { + header ("Location: /"); } + + // Change tables containing datetime data to datetime. + if ($settings::db_driver != "xml") { + $dbh = $common->pdoOpen(); + + $sql = "ALTER TABLE adsb_aircraft MODIFY firstSeen DATETIME NOT NULL" + $sth = $dbh->prepare($sql); + $sth->execute(); + $sth = NULL; + + $sql = "ALTER TABLE adsb_aircraft MODIFY lastSeen DATETIME NOT NULL" + $sth = $dbh->prepare($sql); + $sth->execute(); + $sth = NULL; + + $sql = "ALTER TABLE adsb_blogPosts MODIFY date DATETIME NOT NULL" + $sth = $dbh->prepare($sql); + $sth->execute(); + $sth = NULL; + + $sql = "ALTER TABLE adsb_flights MODIFY firstSeen DATETIME NOT NULL" + $sth = $dbh->prepare($sql); + $sth->execute(); + $sth = NULL; + + $sql = "ALTER TABLE adsb_flights MODIFY firstSeen DATETIME NOT NULL" + $sth = $dbh->prepare($sql); + $sth->execute(); + $sth = NULL; + + $sql = "ALTER TABLE adsb_positions MODIFY time DATETIME NOT NULL" + $sth = $dbh->prepare($sql); + $sth->execute(); + $sth = NULL; + + $dbh = NULL; + } + + // update version and patch settings. + $common->updateSetting("version", $thisVersion); + $common->updateSetting("patch", ""); ?>