Создал словарь с 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гб оперативной памяти, нагрузки почти нет.
Подскажите куда копать. Я так понимаю вылетает из-за попытки загрузить дерево терминов для указания родительских. Можно ли как-то сделать его не в виде списка, а чтобы как в материалах было в строку с автозавершением? Тогда весь сразу грузиться не будет список.
Кто знает где шаблон можно ковырять который выводит форму редактирования термина?
Комментарии
базу настраивать надо не под друпал, а под задачу
подскажете как?
Вы через feeds сейчас грузите?
есть модуль типа term managment, можно загрузить термины просто без дерева а потом в админке этого модуля родителей добавить если их не очень много и еще некоторые специальные именно для импорта терминов в CSV (в названии что-то типа CSV term export import) может с ними получится решить задачу частично (как временное решение пока будете базу настраивать). Или еще совсем в обход (но мне этого делать не приходилось, думаю теоретически возможно) сделать фичу словаря и в нее попытаться добавить прямо в файл Ваши термины.
PS Если базу настроите, интересно будет узнать, как.
Проблема не с добавлением терминов, все уже добавлены и не с их просмотром. Проблема в том, что при редактировании термина должен выводиться список всех терминов для выбора родителя и походу на этом этапе всё падает.
Может где-то в шаблоне отключить просто это поле для данного типа материала?
А страница редактирования термина для чего Вам? Новые добавлять или родителей указывать? Вы же не через нее все 100 000 добавляли, а импортировали как-то?
Можно вообще без нее обойтись. Обновлять термины с помощью импорта feeds с настройками соответсвующими (udate existing terms, заголовк теримна uniq). Или есть модуль именно для работы с терминами: taxonomy_manager.
Как альтернативный способ редактирования. Там можно и добавлять и родителей указывать.
Нужно редактировать описания терминов
А чем feeds не подходит?
только там левая стрелочка на mappings должна была быть
(там можно настроить, чтобы описания импортировать)
То есть вместо простого ручного редактирования по необходимости вы предлагаете мне импортировать каждый раз через файлы?
Вам в очередной раз предлагают пересмотреть либо структуру, либо подход.
Редактирование сотен тысяч терминов через стандартный модуль таксономии - самоубийство.
Структура есть. Необходимость менять иногда описания тоже есть. Из-за того что в форме редактирования выводятся весь список терминов появляется проблема. И вы предлагаете из-за этого сменить структуру всего проекта?
Самый простой вариант мне видится как правка файла-шаблона формы редактирования термина. Либо отключить совсем это поле и включать лишь иногда или как-то переделать его.. либо раскрывающимся списком с подгрузкой, либо как в статьях сделано: вводишь начало термина и он предложит варианты.
Вроде не логичные решения, нет?
Я вам ничего не предлагаю, вы льёте максимум воды при минимальном количестве деталей.
То, что логично в Wordpress - имеет сомнительную ценность в Drupal.
Если ваше редактирование терминов ограничивается переименованием, да изменением описания, то создайте себе для админки вьюху по терминам, поставьте editable fields и редактируйте на лету.
Плюсом, получите фильтры для выбора нужных терминов.
Вот спасибо за дельный совет. Не знал что так можно. Буду копаться
Правка шаблона формы - это самое простое и эффективное решение. Но в седьмом друпале нет шаблонов форм? В вашем случае, если не прокатит с эдитабл вьюс, то придётся через hook_menu объявлять отдельный роут для редактирования термина, в котором вызывать свою кастомную форму, где всё будет так, как вы хотите.
Сразу все и постоянно их ни кто не будет редактировать. Но необходимость править иногда есть.