Work on install/upgrade scripts.

pull/173/head
Joe Prochazka 2016-04-27 19:50:37 -04:00
rodzic 92813e79e5
commit 5155fa4b41
2 zmienionych plików z 59 dodań i 60 usunięć

Wyświetl plik

@ -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,

Wyświetl plik

@ -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", "");
?>