From e6bb836e053913ec8a5930a6d51af1fa55eb08e2 Mon Sep 17 00:00:00 2001 From: thomascube Date: Fri, 25 Feb 2011 16:37:22 +0000 Subject: Create interactive update script with improved DB schema check; udated installer with new features and styles --- installer/test.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'installer/test.php') diff --git a/installer/test.php b/installer/test.php index 713edfbb6..02a1cebe2 100644 --- a/installer/test.php +++ b/installer/test.php @@ -156,6 +156,14 @@ if ($db_working && $_POST['initdb']) { } } +else if ($db_working && $_POST['updatedb']) { + if (!($success = $RCI->update_db($DB, $_POST['version']))) { + $updatefile = INSTALL_PATH . 'SQL/' . (isset($RCI->db_map[$DB->db_provider]) ? $RCI->db_map[$DB->db_provider] : $DB->db_provider) . '.update.sql'; + echo '

Please manually execute the SQL statements from '.$updatefile.' on your database.
'; + echo 'See comments in the file and execute queries below the comment with the currently installed version number.

'; + } +} + // test database if ($db_working) { $db_read = $DB->query("SELECT count(*) FROM {$RCI->config['db_table_users']}"); @@ -164,12 +172,13 @@ if ($db_working) { echo '

'; $db_working = false; } - else if ($RCI->db_schema_check($DB, $update = !empty($_POST['updatedb']))) { + else if ($err = $RCI->db_schema_check($DB, $update = !empty($_POST['updatedb']))) { $RCI->fail('DB Schema', "Database schema differs"); - $db_map = array('pgsql' => 'postgres', 'mysqli' => 'mysql', 'sqlsrv' => 'mssql'); - $updatefile = INSTALL_PATH . 'SQL/' . (isset($db_map[$DB->db_provider]) ? $db_map[$DB->db_provider] : $DB->db_provider) . '.update.sql'; - echo '

Please manually execute the SQL statements from '.$updatefile.' on your database.
'; - echo 'See comments in the file and execute queries that are superscribed with the currently installed version number.

'; + echo '"; + $select = $RCI->versions_select(array('name' => 'version')); + echo '

You should run the update queries to get the schmea fixed.

Version to update from: ' . $select->show() . ' 

'; +// echo '

Please manually execute the SQL statements from '.$updatefile.' on your database.
'; +// echo 'See comments in the file and execute queries that are superscribed with the currently installed version number.

'; $db_working = false; } else { @@ -412,7 +421,7 @@ if (isset($_POST['imaptest']) && !empty($_POST['_host']) && !empty($_POST['_user After completing the installation and the final tests please remove the whole installer folder from the document root of the webserver or make sure that -enable_installer option in main.inc.php is disabled.
+enable_installer option in config/main.inc.php is disabled.

These files may expose sensitive configuration data like server passwords and encryption keys -- cgit v1.2.3