При установке движка ошибка Table 'site.wa_app_settings' doesn't exist Принято

2

Вроде писали - что поправили: https://developers.webasyst.ru...

Но похоже - что нет.

Конфиг: php 7.4, mariadb 10.6

Webasyst Framework: Версия 2.6.2.703 от 8 августа 2022

В логах следующие ошибки:

2022-08-25 19:53:21 176.52.35.198
Table 'site.wa_app_settings' doesn't exist
## wa-system/database/waDbMysqliAdapter.class.php(491)
#0 wa-system/database/waDbMysqliAdapter.class.php(189): waDbMysqliAdapter->exception()
#1 wa-system/database/waModel.class.php(194): waDbMysqliAdapter->schema()
#2 wa-system/webasyst/lib/models/waAppSettings.model.php(114): waModel->describe()
#3 wa-system/database/waModel.class.php(149): waAppSettingsModel->describe()
#4 wa-system/database/waModel.class.php(99): waModel->getFields()
#5 wa-system/database/waModel.class.php(78): waModel->getMetadata()
#6 wa-system/contact/waContact.class.php(67): waModel->__construct()
#7 wa-system/user/waUser.class.php(22): waContact->init()
#8 wa-system/user/waAuthUser.class.php(32): waUser->init()
#9 wa-system/user/waAuthUser.class.php(27): waAuthUser->init()
#10 wa-system/waSystem.class.php(251): waAuthUser->__construct()
#11 wa-system/waSystem.class.php(293): waSystem::getCommonFactory()
#12 wa-system/controller/waDispatch.class.php(115): waSystem->getUser()
#13 wa-system/controller/waDispatch.class.php(32): waDispatch->dispatchBackend()
#14 wa-system/waSystem.class.php(610): waDispatch->dispatch()
#15 index.php(7): waSystem->dispatch()
#16 {main}

2022-08-25 19:53:21 176.52.35.198
Table 'site.wa_verification_channel' doesn't exist
## wa-system/database/waDbMysqliAdapter.class.php(491)
#0 wa-system/database/waDbMysqliAdapter.class.php(189): waDbMysqliAdapter->exception()
#1 wa-system/database/waModel.class.php(194): waDbMysqliAdapter->schema()
#2 wa-system/database/waModel.class.php(149): waModel->describe()
#3 wa-system/database/waModel.class.php(99): waModel->getFields()
#4 wa-system/database/waModel.class.php(78): waModel->getMetadata()
#5 wa-system/verification/models/waVerificationChannel.model.php(17): waModel->__construct()
#6 wa-system/config/waAuthConfig.class.php(770): waVerificationChannelModel->__construct()
#7 wa-system/config/waAuthConfig.class.php(63): waAuthConfig->getVerificationChannelModel()
#8 wa-system/config/waBackendAuthConfig.class.php(36): waAuthConfig->ensureChannelExists()
#9 wa-system/config/waBackendAuthConfig.class.php(24): waBackendAuthConfig->ensureVerificationChannelIdsConsistency()
#10 wa-system/config/waAuthConfig.class.php(42): waBackendAuthConfig::getInstance()
#11 wa-system/auth/waAuth.class.php(72): waAuthConfig::factory()
#12 wa-system/waSystem.class.php(226): waAuth->__construct()
#13 wa-system/waSystem.class.php(502): waSystem->getFactory()
#14 wa-system/user/waAuthUser.class.php(45): waSystem->getAuth()
#15 wa-system/user/waAuthUser.class.php(27): waAuthUser->init()
#16 wa-system/waSystem.class.php(251): waAuthUser->__construct()
#17 wa-system/waSystem.class.php(293): waSystem::getCommonFactory()
#18 wa-system/controller/waDispatch.class.php(115): waSystem->getUser()
#19 wa-system/controller/waDispatch.class.php(32): waDispatch->dispatchBackend()
#20 wa-system/waSystem.class.php(610): waDispatch->dispatch()
#21 index.php(7): waSystem->dispatch()
#22 {main}

Ошибка выскакивает на последнем этапе установки - когда уже после ввода логина, пароля и почты админа и нажимаешь Enter:

В базе только эти таблицы создаются:

5 комментариев

  • +1
    NAiL NAiL 25 августа 2022 23:56 #

    Выяснил, что установка проходит только для баз до MariaDB 10.5 включительно.

    Решение - пока откатиться до версии ниже.

    А начиная от 10.6 версии не устанавливается.

    Вываливаются ошибки, что выше.

  • +4
    NAiL NAiL 26 августа 2022 00:30 #

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

    Так как там многое обновлено.

    Например, в данном случае Max Key length был урезан до 1000.

    А до версий 10.5 включительно - Max KEy Length = 3072.

    Это если установлено всё со стандартных репозиторий, а не собирали сами из исходников(либо хостер собрал).

    • +1
      Anton F Anton F Разработчик 26 августа 2022 13:52 #

      судя по changelog, в нашем случае особой разницы между 10.5 и 10.6 нет.

      для новых версий можно включить old_mode

      проблема скорее всего в первичном ключе у таблиц вроде wa_app_settings:

      'wa_app_settings' => array(
          'app_id' => array('varchar', 64, 'null' => 0),
          'name' => array('varchar', 64, 'null' => 0),
          'value' => array('mediumtext', 'null' => 0),
          ':keys' => array(
              'PRIMARY' => array('app_id', 'name'),
          ),
      ),

      т.е. составной ключ, да еще и из varchar полей.

      т.ч. можешь попробовать заменить на

      'app_id' => array('varchar', 16, 'null' => 0),

      чтобы уместится в "Max Key length был урезан до 1000.", хотя там речь скорее всего о настройках по умолчанию т.ч. скорее всего можно вернуть прежнее значение.

      • +1
        NAiL NAiL 26 августа 2022 14:22 #

        у меня есть несколько серверов - где-то mariadb 10.6 , а где-то 10.5.

        Все установки из коробки без допиливания - с репозиториев mariadb или самого дистриба(Debian, Ubuntu).

        На mariadb 10.6 будут проблемы - даже после переноса базы с 10.5.

        Нужно будет многие Индексы и ключи корректировать.

        Короче, плюнул на это дело )

        Ставлю везде 10.5.

        К сожалению, фреймворк так и не перешел на InnoDB.

        Было бы проще...

        • +1
          Anton F Anton F Разработчик 26 августа 2022 18:43 #

          фреймворк так и не перешел на InnoDB.

          с этим у них как раз все ок, InnoDB таблицы хороши для часто обновляемых данных.

          Нужно будет многие Индексы и ключи корректировать.

          или изменить значение Max Key length

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

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