From 97c6f668e616320f804f36219c8d03c7926b87e1 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sun, 20 Nov 2016 16:32:38 +0100 Subject: [PATCH] add a warning to the admin panel when the MySQL version is problematic --- mod/admin.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mod/admin.php b/mod/admin.php index 67b8ed29f..7114ca7be 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -428,6 +428,7 @@ 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; @@ -436,6 +437,11 @@ function admin_page_summary(&$a) { $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'); } + // 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( array(t('Normal Account'), 0),