Search
Write a publication
Pull to refresh

Изменение конфига MySQL в Joomla 5.2.1 с помощью плагина
Или решаем откладываем проблему с большим количеством характеристик товаров в JoomShopping.

Ситуация:
В JoomShopping для каждой характеристики товара создаётся столбец в таблице
#__jshopping_products_to_extra_fields. Со временем характеристик становится много и попытка создания новой характеристики приводит к ошибке. До сих пор помогало изменение типа столбцов с VARCHAR(100) на TEXT. Но на днях столкнулся с тем что после создания около 400 храктеристик проблема вернулась.

В качестве решения можно отключить строгий режим в MySQL.

Joomla позволяет сделать это даже если у вас нет прав изменять конфигурацию сервера.

В классе Joomla\Database\Mysqli\MysqliDriver в методе connect вызывается событие onAfterConnect. Напишем системный плагин и в обработчике этого события выполним запрос для установки innodb_strict_mode=0.

$driver = $event->getDriver();
$driver->connection->query('SET @@SESSION.innodb_strict_mode = 0;');

Таким образом запрос SET @SESSIONN.innodb_strict_mode = 0; будет выполняться при каждом соединении с базой.

Tags:
Total votes 1: ↑1 and ↓0+1
Comments0

Articles