preserve local index of friendica database when updating

This commit is contained in:
hauke 2015-04-16 21:05:37 +02:00
parent 94451a5eb5
commit 0d61e462fe

View file

@ -151,15 +151,15 @@ function update_structure($verbose, $action, $tables=null, $definition=null) {
if(false === $r) if(false === $r)
$errors .= t('Errors encountered creating database tables.').$name.EOL; $errors .= t('Errors encountered creating database tables.').$name.EOL;
} else { } else {
// Drop the index if it isn't present in the definition // Drop the index if it isn't present in the definition and index name doesn't start with "local_"
foreach ($database[$name]["indexes"] AS $indexname => $fieldnames) foreach ($database[$name]["indexes"] AS $indexname => $fieldnames)
if (!isset($structure["indexes"][$indexname])) { if (!isset($structure["indexes"][$indexname]) && substring($indexname, 0, 5) != 'local_') {
$sql2=db_drop_index($indexname); $sql2=db_drop_index($indexname);
if ($sql3 == "") if ($sql3 == "")
$sql3 = "ALTER TABLE `".$name."` ".$sql2; $sql3 = "ALTER TABLE `".$name."` ".$sql2;
else else
$sql3 .= ", ".$sql2; $sql3 .= ", ".$sql2;
} }
// Compare the field structure field by field // Compare the field structure field by field
foreach ($structure["fields"] AS $fieldname => $parameters) { foreach ($structure["fields"] AS $fieldname => $parameters) {