From 4404bf1651c7ba6602e50ffe47b6448c14b9d0e8 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 9 Oct 2016 07:01:19 +0000 Subject: [PATCH] The creation of unique keys failed for MariaDB --- boot.php | 2 +- include/dbstructure.php | 5 +++-- update.php | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/boot.php b/boot.php index 348b786e4d..f39fb0369c 100644 --- a/boot.php +++ b/boot.php @@ -38,7 +38,7 @@ define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_CODENAME', 'Asparagus'); define ( 'FRIENDICA_VERSION', '3.5.1-dev' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1205 ); +define ( 'DB_UPDATE_VERSION', 1206 ); /** * @brief Constant with a HTML line break. diff --git a/include/dbstructure.php b/include/dbstructure.php index d287b5e6d9..fdf09d90de 100644 --- a/include/dbstructure.php +++ b/include/dbstructure.php @@ -166,7 +166,8 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { @$db->q($sql_config); // MySQL >= 5.7.4 doesn't support the IGNORE keyword in ALTER TABLE statements - if (version_compare($db->server_info(), '5.7.4') >= 0) { + if ((version_compare($db->server_info(), '5.7.4') >= 0) AND + !(strpos($db->server_info(), 'MariaDB') !== false)) { $ignore = ''; }else { $ignore = ' IGNORE'; @@ -196,7 +197,7 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { if ($current_index_definition != $new_index_definition && substr($indexname, 0, 6) != 'local_') { $sql2=db_drop_index($indexname); if ($sql3 == "") - $sql3 = "ALTER TABLE `".$name."` ".$sql2; + $sql3 = "ALTER".$ignore." TABLE `".$name."` ".$sql2; else $sql3 .= ", ".$sql2; } diff --git a/update.php b/update.php index 01fa220673..7560911134 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@