После активации модулей с помощью Drush сайт приходит в неработоспособное состояние

Главные вкладки

Аватар пользователя fanisga fanisga 14 февраля 2023 в 0:12

Доброго времени суток, уважаемое сообщество.
Появилось проблема которую я так и не смог решить, хотя перерыл немало материала на просторах интернет.
В общем так. Устанавливаю Drupal 10 через composer на OpenServer(на Windows 10 работаю):
composer create-project drupal/recommended-project drupal10
Ставлю модули также через composer:
1) composer require drush/drush - сам Drush
2) composer require drupal/smart_date_calendar_kit - ну и модуль https://www.drupal.org/project/smart_date_calendar_kit
Второй этап установки через Drush, записываем данные в БД:
vendor\drush\drush\drush site-install standard ^
--db-url=mysql://root:DataBasePassword@localhost:3306/DatabaseName ^
--account-name=name --account-pass=password ^
--site-name=kids_tour --site-mail=fanisga@drupal.ru -y

И дальше есть две ветки развития событий:
-- 1) Мы НЕ открываем сайт через браузер, ничего там НЕ делаем, ну т.е. НЕ логинемся, НЕ создаем контент, и вообще НЕ ходим по сайту, НЕ пробуем пользоваться поиском. Ну то есть ничего не трогаем на сайте через браузер.
Активируем модули с помощью Drush:
vendor\drush\drush\drush en smart_date_calendar_kit smart_date_recur -y - активируем два модуля.
После активации ТОЛЬКО открываем сайт ну и работаем дальше все отлично.
--2) До активации модулей, т.е. до этапа:
vendor\drush\drush\drush en smart_date_calendar_kit smart_date_recur -y
решили заглянуть на сайт через браузер, ну и к примеру залогинелись под админом. Ну или просто не залогиневшись воспользовались поиском. Не важно что то сделали через браузер.
Активируем модули:
vendor\drush\drush\drush en smart_date_calendar_kit smart_date_recur -y
И начинается...
Если кликнуть на админ панели Сonfiguration вылетает ошибка:
The website encountered an unexpected error. Please try again later.
Error: Class "Drupal\smart_date\Plugin\Field\FieldType\SmartDateItem" not found in Drupal\field\FieldStorageConfigStorage->mapFromStorageRecords() (line 169 of core\modules\field\src\FieldStorageConfigStorage.php).
Ели попытаться создать тип материала Event вылетает ошибка:
The website encountered an unexpected error. Please try again later.

Error: Class "\Drupal\smart_date\Plugin\Field\FieldType\SmartDateFieldItemList" not found in Drupal\Core\TypedData\TypedDataManager->createInstance() (line 91 of core\lib\Drupal\Core\TypedData\TypedDataManager.php).

Я попытался очистить КЭШ, и тогда:
The website encountered an unexpected error. Please try again later.

Error: Class "Drupal\smart_date\Plugin\Field\FieldType\SmartDateItem" not found in Drupal\field\FieldStorageConfigStorage->mapFromStorageRecords() (line 169 of core\modules\field\src\FieldStorageConfigStorage.php).

Сайт ломается окончательно и не одна страница уже не доступна.
Единственный выходом из ситуации которую я вижу, это не использовать Drush для активации модулей, и вообще управления сайтом. Только ядро ставить остальное вручную.

И да. Если модули активировать вручную, через браузер, админ панель, то все хорошо работает. Проблем нет.
Моя версия Drush: 11.4.0. Хотел попробовать установить более раннюю, но выкатывает ошибки не ставиться.
Версия PHP 8.1.9.
Да, я новичке в Drupal. Хотел сразу работать по взрослому, через Drush.
Заранее спасибо!!!!

Комментарии

Аватар пользователя VasyOK VasyOK 14 февраля 2023 в 0:21
1

Фанис, думаю ваших знаний достаточно, чтобы найти виртульный сервер и попробовать на нем. Еще на шареде Радона это нормально настроено.
А потом уже проверить на Опен сервере. Сам слез с Опен сервера на Docker4Drupal из-за похожих проблем с Драшем.
Т.е. локальная разработка это хорошо, но вот откуда новичек должен знать как оно все впринцпе должно работать - я не скажу.

Аватар пользователя Selpi Selpi 14 февраля 2023 в 0:26
1

Я вышеприведенный модуль в глаза не видел, но судя по ошибкам- проблема в кешировании php скриптов, т.е. в настройках вашего openserver-а. Т.е. вы через драш активировали модули, запись об этом появилась в БД, но пхп процесс вебсервера не прочитал файлы модуля с диска.

Аватар пользователя fanisga fanisga 14 февраля 2023 в 20:59

Вообще, ошибки возникают при включении любого модуля через drush, просто разной степени фатальности. Тут опять таки все упирается в условие: Делал ли ты что ни будь на сайте до активации модулей. Если не заходил на сайт после ее установки, а только работаешь через drush норм. Но если открыл сайт до включения ЛЮБОГО модуля, то какая ни будь ошибка да выпотеть.

Аватар пользователя Godwin Godwin 16 февраля 2023 в 10:40
1

Это и есть одна из главных причин, почему сейчас я хочу уйти как можно скорее от Друпала, после 10 лет использования. Я пользователь, могу со многим вещами разобраться, благо учебных материалов много, особенно много на английском, но я не PHP-программист, и после 7-ки ты уже вынужден полагаешься на волю случая, что все команды в консоли пройдут нормально. А что там при этом происходит, знает только php-задрот.

Поэтому, любая ошибка, как у вас, и вы в тупике, откуда путь только назад, откатываться, и что-то пробовать другое. Поймите, что Друпал - это для программистов, а обычным пользователям там места нет. Банальный редактор прикрутили только в 10-ке, Карл(!!!). Лет через 15-20, глядишь, фронтенд нормальный появится, типа Adaptive Theme. От прогресса не убежишь...

Посмотрите в сторону Concrete CMS, там drug-and-drop технологии, и при этом это не просто конструктор, а многое можно самому настраивать под себя. Зачем вам программировать смартфон, чтобы им пользоваться???

Аватар пользователя xSPiRiTx xSPiRiTx 16 февраля 2023 в 11:15

к выше описанному можно еще добавить такое чудо как composer. Даже Пётр Селфин нервничал с композером на стриме по обновлению друпала с 8 на 9.

Аватар пользователя Никки Никки 16 февраля 2023 в 13:20

Godwin wrote: Посмотрите в сторону Concrete CMS

система вышла в 2021 году. Вряд ли она может сравниться с друпалом в многообразии функционала, гибкости и масштабе сообщества разработчиков, готовых оказать помощь.

Аватар пользователя Andruxa Andruxa 16 февраля 2023 в 13:31

Друпал окончательно переориентировался на кровавый энтерпрайз, поэтому - да, это больше не система для пользователей-мышекликеров.
Насколько было верно это решение - узнаем со временем.

Аватар пользователя ivnish ivnish 16 февраля 2023 в 13:40

Да нормально друпал подходит для мышекликеров. Просто у мышекликеров запросы пошли... Тут недавно пытались аналог авито накликать. Мышекликеры просто не понимают, что подобные системы не сделать из готовых кирпичиков и без кастомного кода там не обойтись. А то, что никто не написал готовый модуль под каждую хотелку каждого мышекликера - ну это уже проблемы их ожиданий, а не проблема друпала

Аватар пользователя ivnish ivnish 16 февраля 2023 в 13:50

Ну если в commerce не лезть, то можно прекрасно обойтись без драша с композером. Хотя всё больше и больше контриба теперь имеют зависимости, которые подтягиваются только композером. Поэтому вынужден согласиться

Аватар пользователя VasyOK VasyOK 16 февраля 2023 в 14:41

Я мышекликер.

Композер очень удобен для накладывания патчей.
В 7ке это тоже приходилось и приходится делать много на крупных сайтах.

А перенос конфигураций - это вообще супер функция когда экспериментируешь на тестовом сайте а потом переносишь изменения на рабочий. Я просто забуду что делал если мышкой перекликивать буду.

Да перенос конфигураций он и мышкой возможен. Но я же модули новые ставлю - поэтому после переноса composer.json+composer.lock+ папки темы + папки конфигов будет банально быстрее в консоли запустить composer install + drush cim.

Страшна не столько консоль сколько страх перед ней владельцев 7ки и переход на ВДС.

Вообще мы немного в оффтоп пустились.
Человеку нужно работать с Драшем на Опен сервере - да там действительно есть проблемы.

Аватар пользователя Никки Никки 16 февраля 2023 в 15:04
1

VasyOK wrote: Человеку нужно работать с Драшем на Опен сервере - да там действительно есть проблемы.

нет там никаких проблем. В одной консоли опенсервера и композер прекрасно работает и драш и гит... И версии ПО легко меняются... Вобщем, нормальный инструмент. Проблемы скорее с виндой, которая требует куда как больше ресурсов для локальной разработки, чем линукс. Но если машина мощная, то openserver для большинства задач - норм.

Аватар пользователя Никки Никки 16 февраля 2023 в 13:51
1

fanisga wrote: vendor\drush\drush\drush site-install standard ^

Не по теме вопроса. Просто совет. Если вы внесете в переменную окружения путь к драшу, то вам не придется каждый раз писать этот путь, чтобы вызвать команду. Будете писать просто drush команда. Переменные окружения надо вносить в саму консоль опенсервера (открыть консоль, верху меню-гамбургер, далее Настройки - Окружение).
Например:
set PATH=C:\OSPanel\userdata\drush-11\vendor\drush\drush
где OSPanel - папка OpenServer.

Аватар пользователя Никки Никки 16 февраля 2023 в 14:06

fanisga wrote: Сайт ломается окончательно и не одна страница уже не доступна.
Единственный выходом из ситуации которую я вижу, это не использовать Drush для активации модулей

А с другими модулями тестировали? Может этот баг только с этим конкретным модулем.

Активировать вручную не так уж плохо. Бывает, что с одним модулем тянется еще несколько. И далеко не все нужно активировать. А при автоматической активации драшем, возможно все сразу и активируется. А еще при активации модулей через драш не подтягиваются русские переводы модулей. Во всяком случае с семеркой и драш 8 такие проблемы были.
Делать простые операции через интерфейс - ничего тут плохого нет. Драш можно юзать, если ручная работа ощутимо дольше. А если нет, то какая разница?