diff --git a/includes/lib_schema.php b/includes/lib_schema.php
index 825f26be0f..96def0f41d 100644
--- a/includes/lib_schema.php
+++ b/includes/lib_schema.php
@@ -309,7 +309,12 @@ function db_upgrade_schema ($db, $db_type, $db_name, $display_results) {
$sql = '';
foreach ($apps as $x => &$app) {
foreach ($app['db'] as $y => &$row) {
- $table_name = $row['table'];
+ if (is_array($row['table'])) {
+ $table_name = $row['table']['text'];
+ }
+ else {
+ $table_name = $row['table'];
+ }
if (strlen($table_name) > 0) {
//check if the table exists
if (db_table_exists($db, $db_type, $db_name, $table_name)) {
@@ -355,7 +360,26 @@ function db_upgrade_schema ($db, $db_type, $db_name, $display_results) {
//add missing tables and fields
foreach ($apps as $x => &$app) {
foreach ($app['db'] as $y => &$row) {
- $table_name = $row['table'];
+ if (is_array($row['table'])) {
+ $table_name = $row['table']['text'];
+ if (!db_table_exists($db, $db_type, $db_name, $row['table']['text'])) {
+ $row['exists'] = "true"; //testing
+ //if (db_table_exists($db, $db_type, $db_name, $row['table']['deprecated'])) {
+ if ($db_type == "pgsql") {
+ $sql_update .= "ALTER TABLE ".$row['table']['deprecated']." RENAME TO ".$row['table']['text'].";\n";
+ }
+ if ($db_type == "mysql") {
+ $sql_update .= "RENAME TABLE ".$row['table']['deprecated']." TO ".$row['table']['text'].";\n";
+ }
+ if ($db_type == "sqlite") {
+ $sql_update .= "ALTER TABLE ".$row['table']['deprecated']." RENAME TO ".$row['table']['text'].";\n";
+ }
+ //}
+ }
+ }
+ else {
+ $table_name = $row['table'];
+ }
//check if the table exists
if ($row['exists'] == "true") {
if (count($row['fields']) > 0) {
@@ -424,7 +448,7 @@ function db_upgrade_schema ($db, $db_type, $db_name, $display_results) {
//field type has not changed
}
else {
- $sql_update .= "-- $db_type, $db_name, $table_name, $field_name ".db_column_data_type ($db, $db_type, $db_name, $table_name, $field_name)."
";
+ //$sql_update .= "-- $db_type, $db_name, $table_name, $field_name ".db_column_data_type ($db, $db_type, $db_name, $table_name, $field_name)."
";
$sql_update .= "ALTER TABLE ".$table_name." ALTER COLUMN ".$field_name." TYPE ".$field_type.";\n";
}
}
@@ -454,14 +478,21 @@ function db_upgrade_schema ($db, $db_type, $db_name, $display_results) {
}
else {
//create table
- $sql_update .= db_create_table($apps, $db_type, $row['table']);
+ if (!is_array($row['table'])) {
+ $sql_update .= db_create_table($apps, $db_type, $row['table']);
+ }
}
}
}
//rebuild and populate the table
foreach ($apps as $x => &$app) {
foreach ($app['db'] as $y => &$row) {
- $table_name = $row['table'];
+ if (is_array($row['table'])) {
+ $table_name = $row['table']['text'];
+ }
+ else {
+ $table_name = $row['table'];
+ }
if ($row['rebuild'] == "true") {
if ($db_type == "sqlite") {
//start the transaction
@@ -509,7 +540,12 @@ function db_upgrade_schema ($db, $db_type, $db_name, $display_results) {
$sql = '';
foreach ($apps as &$app) {
foreach ($app['db'] as $row) {
- $table_name = $row['table'];
+ if (is_array($row['table'])) {
+ $table_name = $row['table']['text'];
+ }
+ else {
+ $table_name = $row['table'];
+ }
echo "