Добрый день. Как я понял в drupal 8.6.1 произошло изменение в названии таблиц.
taxonomy_term_hierarchy поменяли на taxonomy_term__paren
Я обновил сайт с 8.5.7 до 8.6.1 и у меня это не произошло. И теперь не работает просмотр терминов таксономии. Поэтому в отчёте я вижу ошибку "Тип сущности Taxonomy term должен быть обновлён"
А в журнале пишут что
Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[42S02]: Base table or view not found: 1146 Table '**********.taxonomy_term__parent' doesn't exist: SELECT t.*, parent_target_id AS parent FROM {taxonomy_term_field_data} t INNER JOIN {taxonomy_term__parent} p ON t.tid = p.entity_id WHERE (t.vid = :db_condition_placeholder_0) AND (t.default_langcode = :db_condition_placeholder_1) ORDER BY t.weight ASC, t.name ASC; Array ( [:db_condition_placeholder_0] => partners [:db_condition_placeholder_1] => 1 ) in Drupal\taxonomy\TermStorage->loadTree() (line 224 of /home/p1292/public_html/core/modules/taxonomy/src/TermStorage.php).
Как мне это исправить?
Я побывал просто переименовать таблицу. Но тогда я видел эту ошибку
Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'parent_target_id' in 'field list': SELECT t.*, parent_target_id AS parent FROM {taxonomy_term_field_data} t INNER JOIN {taxonomy_term__parent} p ON t.tid = p.entity_id WHERE (t.vid = :db_condition_placeholder_0) AND (t.default_langcode = :db_condition_placeholder_1) ORDER BY t.weight ASC, t.name ASC; Array ( [:db_condition_placeholder_0] => newsletter [:db_condition_placeholder_1] => 1 ) in Drupal\taxonomy\TermStorage->loadTree() (line 224 of /home/p1292/public_html/core/modules/taxonomy/src/TermStorage.php).
Подскажите как это исправить?
Комментарии
С ошибками сущностей помогает drush updb --entity-updates, попробуйте
а возможно drush пользоваться сразу на хостинге? или он только для локальных сайтов
Можно, если он установлен. Если нет, то идите в отчёт о состоянии, там в пункте про обновление базы данных будет ссылка на запуск обновления.
Обновление базы данных *****/update.php не даёт результата. Если команда драш делает тоже самое, то значит результата от неё не будет?
Указанная мной, ещё в первом коменте, команда должна решить проблему
Команда drush updb --entity-updates не решило проблему и создало две новые. Подскажите, пожалуйста, как я могу решить эту проблему?
Taxonomy term
Поле Published должно быть обновлено.
Поле Родители Термина должно быть обновлено.
Таблицу не просто переименовали, а преобразовали в более развитую структуру по образцу entity_reference.
Т.е. эксперименты с "ручным переименованием" не помогут.
Откатился до версии 8.5.6 и попробовал сделать обновление через Composer до 8.6.1. Снова прилетели ошибки по Таксономии. Но на этот раз drush updb --entity-updates помог. Ну как помог, просто стер все предыдущие данные таксономии и оставил только заголовки, а самих терминов как не бывало)