summaryrefslogtreecommitdiff
path: root/bin/updatedb.sh
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-01-09 19:21:58 +0100
committerAleksander Machniak <alec@alec.pl>2013-01-09 19:21:58 +0100
commit7e7431bddadae7802748979864ffafa73f694ede (patch)
tree04b5acd22740c3400563fddc3890bc79e7b7e8bb /bin/updatedb.sh
parentb7e7c8f9501850a38705e0a1f18a8ae6e25f1be1 (diff)
Use updatedb.sh from update.sh + various fixes in updatedb.sh
Diffstat (limited to 'bin/updatedb.sh')
-rwxr-xr-xbin/updatedb.sh50
1 files changed, 24 insertions, 26 deletions
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();