diff --git a/convert_innodb.sql b/convert_innodb.sql deleted file mode 100644 index 9eeb67fe85..0000000000 --- a/convert_innodb.sql +++ /dev/null @@ -1,19 +0,0 @@ - - -ALTER TABLE `profile` DROP INDEX `pub_keywords` ; -ALTER TABLE `profile` DROP INDEX `prv_keywords` ; - -ALTER TABLE `item` DROP INDEX `title` ; -ALTER TABLE `item` DROP INDEX `body` ; -ALTER TABLE `item` DROP INDEX `allow_cid` ; -ALTER TABLE `item` DROP INDEX `allow_gid` ; -ALTER TABLE `item` DROP INDEX `deny_cid` ; -ALTER TABLE `item` DROP INDEX `deny_gid` ; -ALTER TABLE `item` DROP INDEX `tag` ; -ALTER TABLE `item` DROP INDEX `file` ; - - -SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' engine=InnoDB;') -FROM information_schema.tables -WHERE engine = 'MyISAM'; - diff --git a/mod/admin.php b/mod/admin.php index c5ad7de3b6..7114ca7be7 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -428,13 +428,19 @@ function admin_page_queue(&$a) { * @return string */ function admin_page_summary(&$a) { + global $db; // are there MyISAM tables in the DB? If so, trigger a warning message $r = q("SELECT `engine` FROM `information_schema`.`tables` WHERE `engine`='myisam' LIMIT 1"); $showwarning = false; - $warningtext = ""; + $warningtext = array(); if (dbm::is_result($r)) { $showwarning = true; - $warningtext = sprintf(t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the convert_innodb.sql in the /util directory of your Friendica installation.
'), 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html'); + $warningtext[] = sprintf(t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the convert_innodb.sql in the /util directory of your Friendica installation.
'), 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html'); + } + // MySQL >= 5.7.4 doesn't support the IGNORE keyword in ALTER TABLE statements + if ((version_compare($db->server_info(), '5.7.4') >= 0) AND + !(strpos($db->server_info(), 'MariaDB') !== false)) { + $warningtext[] = t('You are using a MySQL version which does not support all features that Friendica uses. You should consider switching to MariaDB.'); } $r = q("SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`"); $accounts = array( diff --git a/view/templates/admin_summary.tpl b/view/templates/admin_summary.tpl index 34df0db510..c8e8af2294 100644 --- a/view/templates/admin_summary.tpl +++ b/view/templates/admin_summary.tpl @@ -3,7 +3,9 @@

{{$title}} - {{$page}}

{{if $showwarning}}
-

{{$warningtext}}

+ {{foreach $warningtext as $wt}} +

{{$wt}}

+ {{/foreach}}
{{/if}}