10 OR Length(o.openingtime) > 10'); } Database::exec("ALTER TABLE locationinfo_locationconfig CHANGE `serverid` `serverid` INT(10) UNSIGNED NULL"); tableDropColumn('locationinfo_locationconfig', 'hidden'); tableDropColumn('locationinfo_locationconfig', 'config'); if (!tableHasColumn('locationinfo_locationconfig', 'lastchange')) { $ret = Database::exec('ALTER TABLE locationinfo_locationconfig ADD `lastchange` INT(10) UNSIGNED NOT NULL DEFAULT 0'); if ($ret === false) { finalResponse(UPDATE_FAILED, 'Could not add lastchange field'); } elseif ($ret > 0) { $res[] = UPDATE_DONE; } } } if ($t1 === UPDATE_DONE || $t2 === UPDATE_DONE) { Database::exec('UPDATE locationinfo_locationconfig SET serverid = NULL WHERE serverid = 0'); Database::exec('ALTER TABLE `locationinfo_locationconfig` ADD CONSTRAINT `locationinfo_locationconfig_ibfk_1` FOREIGN KEY ( `serverid` ) REFERENCES `locationinfo_coursebackend` (`serverid`) ON DELETE SET NULL ON UPDATE CASCADE'); } if ($t1 === UPDATE_DONE) { if (false === Database::exec('ALTER TABLE `locationinfo_locationconfig` ADD CONSTRAINT `locationinfo_locationconfig_ibfk_2` FOREIGN KEY ( `locationid` ) REFERENCES `location` (`locationid`) ON DELETE CASCADE ON UPDATE CASCADE')) { $res[] = UPDATE_RETRY; } } if ($t3 === UPDATE_NOOP) { Database::exec("ALTER TABLE `locationinfo_panel` CHANGE `paneltype` `paneltype` ENUM('DEFAULT', 'SUMMARY', 'URL') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL"); // 2017-12-02 expand locationids column Database::exec("ALTER TABLE `locationinfo_panel` CHANGE `locationids` `locationids` varchar(100) CHARACTER SET ascii NOT NULL"); } // 2017-07-26 Add servername key Database::exec("ALTER TABLE `locationinfo_coursebackend` ADD KEY `servername` (`servername`)"); // 2019-02-20 Add lastuse column if (!tableHasColumn('locationinfo_locationconfig', 'lastuse')) { if (Database::exec("ALTER TABLE locationinfo_locationconfig ADD `lastuse` INT(10) UNSIGNED NOT NULL DEFAULT 0 AFTER `lastcalendarupdate`") === false) { finalResponse(UPDATE_FAILED, 'Could not add lastuse column'); } $res[] = UPDATE_DONE; } // 2019-03-06: Add logging table constraint if (tableGetConstraints('locationinfo_backendlog', 'serverid', 'locationinfo_coursebackend', 'serverid') === false) { $res[] = tableAddConstraint('locationinfo_backendlog', 'serverid', 'locationinfo_coursebackend', 'serverid', 'ON UPDATE CASCADE ON DELETE CASCADE'); } // Create response for browser if (in_array(UPDATE_RETRY, $res)) { finalResponse(UPDATE_RETRY, 'Please retry: ' . Database::lastError()); } if (in_array(UPDATE_DONE, $res)) { finalResponse(UPDATE_DONE, 'Tables created successfully'); } finalResponse(UPDATE_NOOP, 'Everything already up to date');