Ошибка во время выполнения метаобновления приложения shop: wa-apps/shop/lib/updates/9.2/1644939838.php code 500 Есть решение

1

Вроде на InnoDB еще не перешли.

Такая ошибка возникла при апгрейде с прошлогодней версии Shop-script:

## wa-system/config/waAppConfig.class.php(393)
#0 wa-apps/shop/lib/config/shopConfig.class.php(17): waAppConfig->checkUpdates()
#1 wa-system/waSystem.class.php(102): shopConfig->checkUpdates()
#2 wa-system/routing/waRouting.class.php(321): waSystem::getInstance()
#3 wa-system/routing/waRouting.class.php(240): waRouting->getAppRoutes()
#4 wa-system/controller/waDispatch.class.php(288): waRouting->dispatch()
#5 wa-system/controller/waDispatch.class.php(34): waDispatch->dispatchFrontend()
#6 wa-system/waSystem.class.php(614): waDispatch->dispatch()
#7 index.php(7): waSystem->dispatch()
#8 {main}

Next waDbException with message 'Query Error 1286: Unknown storage engine 'InnoDB'
Query: CREATE TABLE `shop_set_group` (
            `id` INT NOT NULL AUTO_INCREMENT,
            `name` VARCHAR(255) NOT NULL,
            `sort` INT NOT NULL DEFAULT '0',
            PRIMARY KEY (`id`)
        ) ENGINE = InnoDB':
## wa-system/database/waModel.class.php(279)
#0 wa-system/database/waModel.class.php(334): waModel->run()
#1 wa-apps/shop/lib/updates/9.2/1644939838.php(7): waModel->exec()
#2 wa-system/config/waAppConfig.class.php(437): include('...')
#3 wa-system/config/waAppConfig.class.php(388): waAppConfig->includeUpdate()
#4 wa-apps/shop/lib/config/shopConfig.class.php(17): waAppConfig->checkUpdates()
#5 wa-system/waSystem.class.php(102): shopConfig->checkUpdates()
#6 wa-system/routing/waRouting.class.php(321): waSystem::getInstance()
#7 wa-system/routing/waRouting.class.php(240): waRouting->getAppRoutes()
#8 wa-system/controller/waDispatch.class.php(288): waRouting->dispatch()
#9 wa-system/controller/waDispatch.class.php(34): waDispatch->dispatchFrontend()
#10 wa-system/waSystem.class.php(614): waDispatch->dispatch()
#11 index.php(7): waSystem->dispatch()
#12 {main}

Исправил, удалив строку "ENGINE = InnoDB" в файле /wa-apps/shop/lib/updates/9.2/1644939838.php

3 комментария

  • +2

    Было бы лучше, если бы вы добавили на своем сервере поддержку InnoDb. Ваше решение потенциально опасно — автор явно указал тип таблиц, поддерживающий транзакции и внешние ключи неспроста. Если автор реально рассчитывает на поддержку внешних ключей, то через некоторое время у вас в базе данных образуется куча мусорных записей, которые либо должны были удалиться автоматом при удалении связанной записи, либо автоматом меняться при изменении связанной записи.

    • +1
      NAiL NAiL 17 мая 2023 11:09 #

      Я всё время отключал поддержку InnoDB на серверах для shop-script.

      А тут ради одной таблицы включать поддержку innodb - не целесообразно, имхо. Остальное всё работает на MyIsam.

      Другое дело - если разрабы переведут всю системы на innodb.

    • +1
      replicant replicant 17 мая 2023 10:57 #

      Странно. Озадачился. У меня эта таблица в базе как MyISAM на версии 9.4.3.70, но не исключаю того факта, что т.к. это пока отладочная кухня, то там могло твориться всякое разное.

      Надо будет как-нибудь сравнить со структурой таблиц по-умолчанию для чистой установки.

      Поддержка InnoDB не помешает. Как минимум с ней всё прошло бы гладко. У меня тип таблиц InnoDB вообще устаналивается по-умолчанию для MySQL сервера.

      Добавить комментарий

      Чтобы добавить комментарий, зарегистрируйтесь или войдите