$old_tables = ['fserver', 'gcign', 'gcontact', 'gcontact-relation', 'gfollower' ,'glink', 'item-delivery-data',
'item-activity', 'item-content', 'item_id', 'participation', 'poll', 'poll_result', 'queue', 'retriever_rule',
- 'deliverq', 'dsprphotoq', 'ffinder', 'sign', 'spam', 'term', 'user-item', 'thread', 'item'];
+ 'deliverq', 'dsprphotoq', 'ffinder', 'sign', 'spam', 'term', 'user-item', 'thread', 'item', 'challenge',
+ 'auth_codes', 'clients', 'tokens', 'profile_check'];
$tables = DBA::selectToArray(['INFORMATION_SCHEMA' => 'TABLES'], ['TABLE_NAME'],
['TABLE_SCHEMA' => DBA::databaseName(), 'TABLE_TYPE' => 'BASE TABLE']);
public static function writeStructure()
{
- Renderer::registerTemplateEngine('Friendica\Render\FriendicaSmartyEngine');
-
$tables = [];
foreach (self::definition(null) as $name => $definition) {
- $indexes = [];
+ $indexes = [[
+ 'name' => 'Name',
+ 'fields' => 'Fields',
+ ],
+ [
+ 'name' => '-',
+ 'fields' => '-',
+ ]];
+
+ $lengths = ['name' => 4, 'fields' => 6];
foreach ($definition['indexes'] as $key => $value) {
- $indexes[] = ['name' => $key, 'fields' => implode(', ', $value)];
+ $fieldlist = implode(', ', $value);
+ $indexes[] = ['name' => $key, 'fields' => $fieldlist];
+ $lengths['name'] = max($lengths['name'], strlen($key));
+ $lengths['fields'] = max($lengths['fields'], strlen($fieldlist));
}
+ array_walk_recursive($indexes, function(&$value, $key) use ($lengths)
+ {
+ $value = str_pad($value, $lengths[$key], $value === '-' ? '-' : ' ');
+ });
+
$foreign = [];
$fields = [[
'name' => 'Field',
$current_field_definition = DBA::cleanQuery(implode(",", $field_definition));
$new_field_definition = DBA::cleanQuery(implode(",", $parameters));
if ($current_field_definition != $new_field_definition) {
+ // When the field structure changes then we will not perform the special index handling for MySQL.
+ // See issue #10768
+ $is_unique = false;
+ $temp_name = $name;
+
$sql2 = self::modifyTableField($fieldname, $parameters);
if ($sql3 == "") {
$sql3 = "ALTER" . $ignore . " TABLE `" . $temp_name . "` " . $sql2;
echo "permissionset: Table not found\n";
}
- if (!self::existsForeignKeyForField('tokens', 'client_id')) {
+ if (self::existsTable('tokens') && self::existsTable('clients') && !self::existsForeignKeyForField('tokens', 'client_id')) {
$tokens = DBA::p("SELECT `tokens`.`id` FROM `tokens`
LEFT JOIN `clients` ON `clients`.`client_id` = `tokens`.`client_id`
WHERE `clients`.`client_id` IS NULL");