* Print out database error messages
*
* @param string $message Message to be added to the error message
+ *
* @return string Error message
*/
private static function printUpdateError(string $message): string
/**
* Perform a database structure dryrun (means: just simulating)
*
+ * @return string Empty string if the update is successful, error messages otherwise
* @throws Exception
*/
public static function dryRun(): string
$fields = DBA::selectToArray('INFORMATION_SCHEMA.COLUMNS',
['COLUMN_NAME', 'COLUMN_TYPE', 'IS_NULLABLE', 'COLUMN_DEFAULT', 'EXTRA',
- 'COLUMN_KEY', 'COLLATION_NAME', 'COLUMN_COMMENT'],
+ 'COLUMN_KEY', 'COLLATION_NAME', 'COLUMN_COMMENT'],
["`TABLE_SCHEMA` = ? AND `TABLE_NAME` = ?",
- DBA::databaseName(), $table]);
+ DBA::databaseName(), $table]);
$foreign_keys = DBA::selectToArray('INFORMATION_SCHEMA.KEY_COLUMN_USAGE',
['COLUMN_NAME', 'CONSTRAINT_NAME', 'REFERENCED_TABLE_NAME', 'REFERENCED_COLUMN_NAME'],
["`TABLE_SCHEMA` = ? AND `TABLE_NAME` = ? AND `REFERENCED_TABLE_SCHEMA` IS NOT NULL",
- DBA::databaseName(), $table]);
+ DBA::databaseName(), $table]);
$table_status = DBA::selectFirst('INFORMATION_SCHEMA.TABLES',
['ENGINE', 'TABLE_COLLATION', 'TABLE_COMMENT'],
["`TABLE_SCHEMA` = ? AND `TABLE_NAME` = ?",
- DBA::databaseName(), $table]);
+ DBA::databaseName(), $table]);
- $fielddata = [];
- $indexdata = [];
+ $fielddata = [];
+ $indexdata = [];
$foreigndata = [];
if (DBA::isResult($foreign_keys)) {
foreach ($foreign_keys as $foreign_key) {
- $parameters = ['foreign' => [$foreign_key['REFERENCED_TABLE_NAME'] => $foreign_key['REFERENCED_COLUMN_NAME']]];
- $constraint = self::getConstraintName($table, $foreign_key['COLUMN_NAME'], $parameters);
+ $parameters = ['foreign' => [$foreign_key['REFERENCED_TABLE_NAME'] => $foreign_key['REFERENCED_COLUMN_NAME']]];
+ $constraint = self::getConstraintName($table, $foreign_key['COLUMN_NAME'], $parameters);
$foreigndata[$constraint] = $foreign_key;
}
}
$fielddata = [];
if (DBA::isResult($fields)) {
foreach ($fields as $field) {
- $search = ['tinyint(1)', 'tinyint(3) unsigned', 'tinyint(4)', 'smallint(5) unsigned', 'smallint(6)', 'mediumint(8) unsigned', 'mediumint(9)', 'bigint(20)', 'int(10) unsigned', 'int(11)'];
- $replace = ['boolean', 'tinyint unsigned', 'tinyint', 'smallint unsigned', 'smallint', 'mediumint unsigned', 'mediumint', 'bigint', 'int unsigned', 'int'];
+ $search = ['tinyint(1)', 'tinyint(3) unsigned', 'tinyint(4)', 'smallint(5) unsigned', 'smallint(6)', 'mediumint(8) unsigned', 'mediumint(9)', 'bigint(20)', 'int(10) unsigned', 'int(11)'];
+ $replace = ['boolean', 'tinyint unsigned', 'tinyint', 'smallint unsigned', 'smallint', 'mediumint unsigned', 'mediumint', 'bigint', 'int unsigned', 'int'];
$field['COLUMN_TYPE'] = str_replace($search, $replace, $field['COLUMN_TYPE']);
$fielddata[$field['COLUMN_NAME']]['type'] = $field['COLUMN_TYPE'];
}
$fielddata[$field['COLUMN_NAME']]['Collation'] = $field['COLLATION_NAME'];
- $fielddata[$field['COLUMN_NAME']]['comment'] = $field['COLUMN_COMMENT'];
+ $fielddata[$field['COLUMN_NAME']]['comment'] = $field['COLUMN_COMMENT'];
}
}
return [
- 'fields' => $fielddata,
- 'indexes' => $indexdata,
+ 'fields' => $fielddata,
+ 'indexes' => $indexdata,
'foreign_keys' => $foreigndata,
'table_status' => $table_status
];
{
return DBA::exists('INFORMATION_SCHEMA.KEY_COLUMN_USAGE',
["`TABLE_SCHEMA` = ? AND `TABLE_NAME` = ? AND `COLUMN_NAME` = ? AND `REFERENCED_TABLE_SCHEMA` IS NOT NULL",
- DBA::databaseName(), $table, $field]);
+ DBA::databaseName(), $table, $field]);
}
/**
if (self::existsTable('user') && !DBA::exists('user', ['uid' => 0])) {
$user = [
- 'verified' => true,
- 'page-flags' => User::PAGE_FLAGS_SOAPBOX,
+ 'verified' => true,
+ 'page-flags' => User::PAGE_FLAGS_SOAPBOX,
'account-type' => User::ACCOUNT_TYPE_RELAY,
];
DBA::insert('user', $user);
$permission = '';
}
$fields = ['id' => $set['psid'], 'uid' => $set['uid'], 'allow_cid' => $permission,
- 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => ''];
+ 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => ''];
DBA::insert('permissionset', $fields);
}
DBA::close($sets);
$isUpdate = false;
$processes = DBA::select('information_schema.processlist', ['info'], [
- 'db' => DBA::databaseName(),
+ 'db' => DBA::databaseName(),
'command' => ['Query', 'Execute']
]);