Ошибка при редактировании терминов

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

Аватар пользователя redizka redizka 18 августа 2018 в 8:37

Создал словарь с 100.000 терминов. Когда было тысяч 50, работало нормально всё, а сейчас при попытке редактировать термин выпадает ошибка:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away' in /var/www/myinstructions/data/www/drupaltest.ru/includes/database/database.inc:2227 Stack trace: #0 /var/www/myinstructions/data/www/drupaltest.ru/includes/database/database.inc(2227): PDOStatement->execute(Array) #1 /var/www/myinstructions/data/www/drupaltest.ru/includes/database/database.inc(697): DatabaseStatementBase->execute(Array, Array) #2 /var/www/myinstructions/data/www/drupaltest.ru/includes/database/database.inc(2406): DatabaseConnection->query('SELECT expire, ...', Array, Array) #3 /var/www/myinstructions/data/www/drupaltest.ru/includes/lock.inc(167): db_query('SELECT expire, ...', Array) #4 /var/www/myinstructions/data/www/drupaltest.ru/includes/lock.inc(146): lock_may_be_available('schema:runtime:...') #5 /var/www/myinstructions/data/www/drupaltest.ru/includes/bootstrap.inc(438): lock_acquire('schema:runtime:...') #6 /var/www/myinstructions/data/www/drupaltest.ru/includes/bootstrap. in /var/www/myinstructions/data/www/drupaltest.ru/includes/database/database.inc on line 2227

Память в настройках php.ini прописывал до 4 гигабайт, не помогает. Настройки sql оптимизировал под друпал.
На сервере 32гб оперативной памяти, нагрузки почти нет.

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

Кто знает где шаблон можно ковырять который выводит форму редактирования термина?

Комментарии

Аватар пользователя alexo alexo 18 августа 2018 в 13:51

redizka wrote:

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

Вы через feeds сейчас грузите?
есть модуль типа term managment, можно загрузить термины просто без дерева а потом в админке этого модуля родителей добавить если их не очень много и еще некоторые специальные именно для импорта терминов в CSV (в названии что-то типа CSV term export import) может с ними получится решить задачу частично (как временное решение пока будете базу настраивать). Или еще совсем в обход (но мне этого делать не приходилось, думаю теоретически возможно) сделать фичу словаря и в нее попытаться добавить прямо в файл Ваши термины.
PS Если базу настроите, интересно будет узнать, как.

Аватар пользователя redizka redizka 18 августа 2018 в 13:58

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

Аватар пользователя alexo alexo 18 августа 2018 в 14:09

А страница редактирования термина для чего Вам? Новые добавлять или родителей указывать? Вы же не через нее все 100 000 добавляли, а импортировали как-то?
Можно вообще без нее обойтись. Обновлять термины с помощью импорта feeds с настройками соответсвующими (udate existing terms, заголовк теримна uniq). Или есть модуль именно для работы с терминами: taxonomy_manager.
Как альтернативный способ редактирования. Там можно и добавлять и родителей указывать.

Аватар пользователя alexo alexo 18 августа 2018 в 14:27

А чем feeds не подходит?
только там левая стрелочка на mappings должна была быть
(там можно настроить, чтобы описания импортировать)

Аватар пользователя redizka redizka 18 августа 2018 в 14:50

То есть вместо простого ручного редактирования по необходимости вы предлагаете мне импортировать каждый раз через файлы?

Аватар пользователя Semantics Semantics 18 августа 2018 в 15:03

Вам в очередной раз предлагают пересмотреть либо структуру, либо подход.
Редактирование сотен тысяч терминов через стандартный модуль таксономии - самоубийство.

Аватар пользователя redizka redizka 18 августа 2018 в 15:14

Структура есть. Необходимость менять иногда описания тоже есть. Из-за того что в форме редактирования выводятся весь список терминов появляется проблема. И вы предлагаете из-за этого сменить структуру всего проекта?
Самый простой вариант мне видится как правка файла-шаблона формы редактирования термина. Либо отключить совсем это поле и включать лишь иногда или как-то переделать его.. либо раскрывающимся списком с подгрузкой, либо как в статьях сделано: вводишь начало термина и он предложит варианты.

Вроде не логичные решения, нет?

Аватар пользователя Semantics Semantics 18 августа 2018 в 15:20
1

Я вам ничего не предлагаю, вы льёте максимум воды при минимальном количестве деталей.
То, что логично в Wordpress - имеет сомнительную ценность в Drupal.

Если ваше редактирование терминов ограничивается переименованием, да изменением описания, то создайте себе для админки вьюху по терминам, поставьте editable fields и редактируйте на лету.
Плюсом, получите фильтры для выбора нужных терминов.

Аватар пользователя gun_dose gun_dose 18 августа 2018 в 20:57

Правка шаблона формы - это самое простое и эффективное решение. Но в седьмом друпале нет шаблонов форм? В вашем случае, если не прокатит с эдитабл вьюс, то придётся через hook_menu объявлять отдельный роут для редактирования термина, в котором вызывать свою кастомную форму, где всё будет так, как вы хотите.

Аватар пользователя redizka redizka 18 августа 2018 в 15:16

Semantics wrote:

Редактирование сотен тысяч терминов через стандартный модуль таксономии - самоубийство

Сразу все и постоянно их ни кто не будет редактировать. Но необходимость править иногда есть.