| | |
| | | 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( |
| | |
| | | $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; |
| | | } |
| | |
| | | $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(); |