diff options
author | Andrew Dolgov <[email protected]> | 2021-03-04 09:22:24 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2021-03-04 09:22:24 +0300 |
commit | 5eb0f3d640374a82a026164942adc79bb1262576 (patch) | |
tree | 1227d76bb1184b4e505ea53ca49ea3252ac9512d /classes/db | |
parent | e19570f422df8e4ba0d604b517efad111def9a23 (diff) |
bring back web dbupdate using new migrations system
Diffstat (limited to 'classes/db')
-rw-r--r-- | classes/db/migrations.php | 2 | ||||
-rw-r--r-- | classes/db/updater.php | 82 |
2 files changed, 1 insertions, 83 deletions
diff --git a/classes/db/migrations.php b/classes/db/migrations.php index e77904f60..e5133ddf6 100644 --- a/classes/db/migrations.php +++ b/classes/db/migrations.php @@ -89,7 +89,7 @@ class Db_Migrations { try { $this->pdo->query($line); } catch (PDOException $e) { - Debug::log("Failed on line: $line"); + Debug::log("Failed on line: $line", Debug::LOG_VERBOSE); throw $e; } } diff --git a/classes/db/updater.php b/classes/db/updater.php deleted file mode 100644 index 9d27c94d9..000000000 --- a/classes/db/updater.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php -class Db_Updater { - const SCHEMA_VERSION = 142; - - private $pdo; - private $db_type; - - function __construct($pdo, $db_type) { - $this->pdo = $pdo; - $this->db_type = $db_type; - } - - /** always returns actual (=uncached) value */ - private static function get_schema_version() { - return Config::get_schema_version(true); - } - - static function is_update_required() { - return self::get_schema_version() < self::SCHEMA_VERSION; - } - - function get_schema_lines($version) { - $filename = "schema/versions/".$this->db_type."/$version.sql"; - - if (file_exists($filename)) { - return explode(";", (string)preg_replace("/[\r\n]/", "", (string)file_get_contents($filename))); - } else { - user_error("DB Updater: schema file for version $version is not found."); - return false; - } - } - - function update_to($version, $html_output = true) { - if ($this->get_schema_version() == $version - 1) { - - $lines = $this->get_schema_lines($version); - - if (is_array($lines)) { - - $this->pdo->beginTransaction(); - - foreach ($lines as $line) { - if (strpos($line, "--") !== 0 && $line) { - - if ($html_output) - print "<pre>$line</pre>"; - else - Debug::log("> $line"); - - try { - $this->pdo->query($line); // PDO returns errors as exceptions now - } catch (PDOException $e) { - if ($html_output) { - print "<div class='text-error'>Error: " . $e->getMessage() . "</div>"; - } else { - Debug::log("Error: " . $e->getMessage()); - } - - $this->pdo->rollBack(); - return false; - } - } - } - - $db_version = self::get_schema_version(); - - if ($db_version == $version) { - $this->pdo->commit(); - return true; - } else { - $this->pdo->rollBack(); - return false; - } - } else { - return false; - } - } else { - return false; - } - } - -} |