From d6627563be5f2bfca36e24a7d2d1024a88d475d4 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 4 Apr 2018 16:28:53 -0300 Subject: [PATCH] Bug 20521: Enable problematic SQL modes for dev installs So far we have bug 17258 (omnibus to list the issue we have with the new default SQL modes), bug 20144 (which fixed our test suite with these modes) and bug 20229. This last one forces the SQL modes to avoid to modify the DBMS configuration and define the SQL modes we support. We should let developers catch the issues and report/fix them. Also Jenkins must alert us if there is a regression with the test suite. I suggest to enable the problematic SQL modes on dev installs. Test plan: - Revert commit 0180524bb9b1464c441bb1b858d0d8df37524d72 - prove t/db_dependent/Koha/Biblios.t => If you have dev_install defined in your Koha config file, the test will fail with "Field 'datecreated' doesn't have a default value" => If you do not have dev_install, the tests will pass --- Koha/Database.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Koha/Database.pm b/Koha/Database.pm index e97c794a45..e2ba57a961 100644 --- a/Koha/Database.pm +++ b/Koha/Database.pm @@ -75,7 +75,11 @@ sub _new_schema { %encoding_attr = ( mysql_enable_utf8 => 1 ); $encoding_query = "set NAMES 'utf8mb4'"; $tz_query = qq(SET time_zone = "$tz") if $tz; - $sql_mode_query = q{SET sql_mode = 'IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'}; + unless ( C4::Context->config('dev_install') ) { + $sql_mode_query = q{SET sql_mode = 'IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'}; + } else { + $sql_mode_query = q{SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'}; + } } elsif ( $db_driver eq 'Pg' ) { $encoding_query = "set client_encoding = 'UTF8';"; -- 2.11.0