Закрыть
Скидки в Webasyst 25–29 ноября 2021

Ошибка #0

Доброго времени суток!

Попробовали сегодня обновить фреймворк, магазин и тему. Но появились ошибки в теме в старом образце и в новой версии, решили сделать полный откат с рабочей версии, но не тут-то было, теперь выдает в ошибку в бекенде при переходе на магазин.

Table 'instrumentomania.shop_promo_rules' doesn't exist code 1146
## wa-system/database/waDbMysqliAdapter.class.php(485)
#0 wa-system/database/waDbMysqliAdapter.class.php(183): waDbMysqliAdapter->exception()
#1 wa-system/database/waModel.class.php(185): waDbMysqliAdapter->schema('shop_promo_rule...', false)
#2 wa-system/database/waModel.class.php(141): waModel->describe()
#3 wa-system/database/waModel.class.php(93): waModel->getFields()
#4 wa-system/database/waModel.class.php(77): waModel->getMetadata()
#5 wa-apps/shop/lib/updates/8.6/1574941090.php(28): waModel->__construct()
#6 wa-apps/shop/lib/updates/8.6/1574941090.php(126): shopPromoBannersMigrationUpdate->__construct()
#7 wa-system/config/waAppConfig.class.php(408): include('/var/www/instru...')
#8 wa-system/config/waAppConfig.class.php(359): waAppConfig->includeUpdate('/var/www/instru...')
#9 wa-system/waSystem.class.php(96): waAppConfig->checkUpdates()
#10 wa-system/waSystem.class.php(1669): waSystem::getInstance('shop', Object(shopConfig), 1)
#11 wa-system/waSystem.class.php(693): wa('shop', 1)
#12 wa-system/waSystem.class.php(576): waSystem->dispatchBackend('webasyst/shop/')
#13 index.php(7): waSystem->dispatch()
#14 {main}
GET
array()
Params
array()
Unable to load template file 'error.html' code 0
## wa-system/waSystem.class.php(594)
#0 index.php(7): waSystem->dispatch()
#1 {main}
Next SmartyException with message 'Unable to load template file 'error.html'':
## wa-system/vendors/smarty3/sysplugins/smarty_internal_templatebase.php(131)
#0 wa-system/view/waSmarty3View.class.php(118): Smarty_Internal_TemplateBase->fetch('file:error.html', NULL)
#1 wa-apps/shop/lib/actions/frontend/shopFrontend.action.php(156): waSmarty3View->fetch('file:error.html')
#2 wa-system/controller/waViewController.class.php(86): shopFrontendAction->display()
#3 wa-system/controller/waDefaultViewController.class.php(48): waViewController->executeAction(Object(shopFrontendAction))
#4 wa-system/controller/waController.class.php(21): waDefaultViewController->execute()
#5 wa-system/controller/waViewController.class.php(46): waController->run(NULL)
#6 wa-system/controller/waFrontController.class.php(255): waViewController->run(NULL)
#7 wa-system/controller/waFrontController.class.php(190): waFrontController->runController(Object(waDefaultViewController), NULL)
#8 wa-system/controller/waFrontController.class.php(84): waFrontController->execute(NULL, 'frontend', '')
#9 wa-system/waSystem.class.php(703): waFrontController->dispatch()
#10 wa-system/waSystem.class.php(576): waSystem->dispatchBackend('webasyst/shop/')
#11 index.php(7): waSystem->dispatch()
#12 {main}
GET
array()
Params
array(
'is_backend_route' => true,
'app' => 'shop',
'module' => 'frontend',
'action' => '',
)

Есть кто может подсказать, помочь, в чем дело и что нужно делать?

4 ответа

  • 2

    С какой версии на какую обновлялись и куда потом откатывались?

    Table 'instrumentomania.shop_promo_rules' doesn't exist code 1146

    говорит о том, что таблицы shop_promo_rules не существует. Т.е., судя по всему, ее нет в базе на которую Вы откатывались, но вызов ее происходит при попытке накатить обновление 8.6


    А вообще, чем черт не шутит. Попробуйте почистить кеш в Исталлере.

  • 1
    Павел 21 июня 2020 00:19 #

    Это пробовал, меня вообще очень пугает, что я сделал полный откат и тут такая ерунда блин...

    Спустя несколько часов помогло вот это

    https://support.webasyst.ru/forum/34363/table-shop_promo_rules-doesnt-exist/

    Обновил фреймворк, потом магазин до последних версий и далее добавил таблицу. Однако теперь все работает, кроме нового раздела маркетинг.

    Ошибку выдает следующую.

    Query Error 1146: Table 'instrumentomania.shop_promo_orders' doesn't exist
    Query: INSERT INTO shop_sales_tmp (order_id, name)
    SELECT po.order_id, po.promo_id
    FROM shop_order AS o
    JOIN shop_promo_orders AS po
    ON po.order_id=o.id
    WHERE o.paid_date >= DATE('2020-06-14') AND o.paid_date <= (DATE('2020-06-21') + INTERVAL 86399 SECOND) code 1146
    ## wa-system/database/waModel.class.php(266)
    #0 wa-system/database/waModel.class.php(321): waModel->run('INSERT INTO sho...')
    #1 wa-apps/shop/lib/model/shopSales.model.php(1254): waModel->exec('INSERT INTO sho...')
    #2 wa-apps/shop/lib/model/shopSales.model.php(912): shopSalesModel->rebuildTmpByPromos('o.paid_date >= ...', Array)
    #3 wa-apps/shop/lib/model/shopSales.model.php(855): shopSalesModel->rebuildTmpTable('promos', '2020-06-14', '2020-06-21', Array)
    #4 wa-apps/shop/lib/model/shopSales.model.php(768): shopSalesModel->rebuildPeriod('promos', '2020-06-14', '2020-06-21', Array)
    #5 wa-apps/shop/lib/model/shopSales.model.php(102): shopSalesModel->ensurePeriod('promos', '2020-06-14', '2020-06-21', Array)
    #6 wa-apps/shop/lib/actions/marketing/promo/shopMarketingPromos.action.php(170): shopSalesModel->getPeriodByDate('promos', '2020-06-14', '2020-06-21', Array)
    #7 wa-apps/shop/lib/actions/marketing/promo/shopMarketingPromos.action.php(35): shopMarketingPromosAction->loadCharts(Array)
    #8 wa-system/controller/waViewAction.class.php(161): shopMarketingPromosAction->execute()
    #9 wa-system/controller/waViewController.class.php(86): waViewAction->display()
    #10 wa-system/controller/waDefaultViewController.class.php(48): waViewController->executeAction(Object(shopMarketingPromosAction))
    #11 wa-system/controller/waController.class.php(21): waDefaultViewController->execute()
    #12 wa-system/controller/waViewController.class.php(46): waController->run(NULL)
    #13 wa-system/controller/waFrontController.class.php(263): waViewController->run(NULL)
    #14 wa-system/controller/waFrontController.class.php(190): waFrontController->runController(Object(waDefaultViewController), NULL)
    #15 wa-system/controller/waFrontController.class.php(84): waFrontController->execute(NULL, 'marketingPromos', NULL)
    #16 wa-system/waSystem.class.php(747): waFrontController->dispatch()
    #17 wa-system/waSystem.class.php(613): waSystem->dispatchBackend('webasyst/shop/m...')
    #18 index.php(7): waSystem->dispatch()
    #19 {main}
    GET
    array()
    Params
    array(
    'is_backend_route' => true,
    'app' => 'shop',
    'module' => 'marketingPromos',
    )

    • +1

      Ну надо точно так же добавить таблицу shop_promo_orders. Хотя не очень понимаю куда они у Вас деваются =)

      Структура у нее вот такая

      'shop_promo_orders' => array(
              'order_id' => array('int', 10, 'unsigned' => 1, 'null' => 0),
              'promo_id' => array('int', 11, 'unsigned' => 1, 'null' => 0),
              ':keys'    => array(
                  'PRIMARY' => array('order_id', 'promo_id'),
              ),
          ),

  • 1

    Кстати, да... Тоже недавно видел при обновлении фрейма и магазина с достаточно старых (шоп 7) до актуальных версий всякие проблемы с таблицами, и тоже с разделом маркетинг. Только откатываться не стал, а дотянул таки до новой версии. Было такое впечатление, что не все метаобновления отработали.

Добавить ответ

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