diff options
author | Andrew Dolgov <[email protected]> | 2013-04-04 19:15:14 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-04-04 19:15:14 +0400 |
commit | b4c47f7e7b4c8220e07115f27c373df20503d576 (patch) | |
tree | 799276d1feea30f9e08c3a27fdd402c0eabfa1d9 /update.php | |
parent | 29c8fa080e28f6c1c43343d68c36de96f7f9f086 (diff) |
add command-line db schema updater
Diffstat (limited to 'update.php')
-rwxr-xr-x | update.php | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/update.php b/update.php index e57aef90f..e1afb6bd6 100755 --- a/update.php +++ b/update.php @@ -31,6 +31,7 @@ "quiet", "log:", "indexes", + "update-schema", "convert-filters", "force-update", "list-plugins", @@ -72,6 +73,7 @@ print " --quiet - don't output messages to stdout\n"; print " --log FILE - log messages to FILE\n"; print " --indexes - recreate missing schema indexes\n"; + print " --update-schema - update database schema\n"; print " --convert-filters - convert type1 filters to type2\n"; print " --force-update - force update of all feeds\n"; print " --list-plugins - list all available plugins\n"; @@ -290,6 +292,35 @@ } + if (isset($options["update-schema"])) { + _debug("checking for updates (" . DB_TYPE . ")..."); + + $updater = new DbUpdater($link, DB_TYPE, SCHEMA_VERSION); + + if ($updater->isUpdateRequired()) { + _debug("schema update required, version " . $updater->getSchemaVersion() . " to " . SCHEMA_VERSION); + _debug("WARNING: please backup your database before continuing."); + _debug("Type 'yes' to continue."); + + if (read_stdin() != 'yes') + exit; + + for ($i = $updater->getSchemaVersion() + 1; $i <= SCHEMA_VERSION; $i++) { + _debug("performing update up to version $i..."); + + $result = $updater->performUpdateTo($i); + + _debug($result ? "OK!" : "FAILED!"); + + if (!$result) return; + + } + } else { + _debug("update not required."); + } + + } + if (isset($options["list-plugins"])) { $tmppluginhost = new PluginHost($link); $tmppluginhost->load_all($tmppluginhost::KIND_ALL); @@ -322,4 +353,4 @@ if (file_exists(LOCK_DIRECTORY . "/$lock_filename")) unlink(LOCK_DIRECTORY . "/$lock_filename"); -?> +g?> |