From 7e7431bddadae7802748979864ffafa73f694ede Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Wed, 9 Jan 2013 19:21:58 +0100 Subject: Use updatedb.sh from update.sh + various fixes in updatedb.sh --- bin/updatedb.sh | 50 ++++++++++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 26 deletions(-) (limited to 'bin/updatedb.sh') diff --git a/bin/updatedb.sh b/bin/updatedb.sh index d2cf1b046..3d37edf61 100755 --- a/bin/updatedb.sh +++ b/bin/updatedb.sh @@ -45,8 +45,27 @@ if (!file_exists($opts['dir'])) { exit(1); } -// version is specified, use release-to-version map -if ($opts['version']) { +$RC = rcube::get_instance(); +$DB = rcube_db::factory($RC->config->get('db_dsnw')); + +// Connect to database +$DB->db_connect('w'); +if (!$DB->is_connected()) { + echo "Error connecting to database: " . $DB->is_error() . ".\n"; + exit(1); +} + +// Read DB schema version from database +$DB->query("SELECT " . $DB->quote_identifier('value') + ." FROM " . $DB->quote_identifier('system') + ." WHERE " . $DB->quote_identifier('name') ." = ?", + $opts['label'] . '-version'); + +$row = $DB->fetch_array(); +$version = $row[0]; + +// no DB version, but release version is specified +if (!$version && $opts['version']) { // Map old release version string to DB schema version // Note: This is for backward compat. only, do not need to be updated $map = array( @@ -82,28 +101,7 @@ if ($opts['version']) { $version = $map[$opts['version']]; } -$RC = rcube::get_instance(); -$DB = rcube_db::factory($RC->config->get('db_dsnw')); - -// Connect to database -$DB->db_connect('w'); -if (!$DB->is_connected()) { - echo "Error connecting to database: " . $DB->is_error() . ".\n"; - exit(1); -} - -// Read DB schema version from database -if (empty($version)) { - @$DB->query("SELECT " . $DB->quote_identifier('value') - ." FROM " . $DB->quote_identifier('system') - ." WHERE name = ?", - $opts['label'] . '-version'); - - $row = $DB->fetch_array(); - $version = $row[0]; -} - -// Assume last version without the "system" table +// Assume last version before the system table was added if (empty($version)) { $version = 2012080700; } @@ -162,13 +160,13 @@ function update_db_schema($label, $version, $file) $DB->query("UPDATE " . $DB->quote_identifier('system') ." SET " . $DB->quote_identifier('value') . " = ?" ." WHERE " . $DB->quote_identifier('name') . " = ?", - $version, $opts['label'] . '-version'); + $version, $label . '-version'); if (!$DB->is_error() && !$DB->affected_rows()) { $DB->query("INSERT INTO " . $DB->quote_identifier('system') ." (" . $DB->quote_identifier('name') . ", " . $DB->quote_identifier('value') . ")" ." VALUES (?, ?)", - $opts['label'] . '-version', $version); + $label . '-version', $version); } return $DB->is_error(); -- cgit v1.2.3