Обновление до Joomla 3.6 - 1062 Duplicate entry '453'

  • 8 Ответов
  • 738 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн Kerlen

Доброго времени суток. Обновлял сайт до Joomla 3.6, вроде обновился, но в конце получил сообщение об ошибке:

1062 Duplicate entry '453' for key 'PRIMARY' SQL=INSERT INTO `#__extensions` (`extension_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES (453, 'plg_editors-xtd_module', 'plugin', 'module', 'editors-xtd', 0, 1, 1, 0, '', '', '', '', 0, '0000-00-00 00:00:00', 0, 0);
Сайт вроде бы работает, но появились частые ошибки при работе сайта вида "502 Bad Gateway". Попробовал новую фишку реинсталл Joomla, получил всё ту же ошибку 1062 Duplicate entry '453'...

Если кто понимает, в чём тут проблема и как её победить, прошу помощи. Сам не программер ни разу...

Ну, можно проверить в админке: Extensions -> Manage -> Database - там есть кнопка пофиксить базу.
Можно в phpMyAdmin поискать кнопку с пересозданием индекса у таблицы (кнопочки про обслуживание таблицы могут помочь)... Подробности не знаю.

*

Оффлайн Kerlen

Эти варианты уже пробовал, эффекта не наблюдал.

*

Оффлайн bb-pax

Доброго времени суток. Обновлял сайт до Joomla 3.6, вроде обновился, но в конце получил сообщение об ошибке:

Сайт вроде бы работает, но появились частые ошибки при работе сайта вида "502 Bad Gateway". Попробовал новую фишку реинсталл Joomla, получил всё ту же ошибку 1062 Duplicate entry '453'...

Если кто понимает, в чём тут проблема и как её победить, прошу помощи. Сам не программер ни разу...

А с какой версии обновляетесь? Думаю, что не с 3.5, а более ранней? Соответственно, по очереди накатываются все обновления БД. На каком-то этапе при обновлении БД до уровня Joomla 3.5 происходит попытка добавить в БД новый плагин plg_editors-xtd_module с ID 453. У вас же откуда-то в системе уже есть какой-то плагин или компонент или модуль с таким ID. Посмотрите, что это, и тогда можно будет понять, можно ли его спокойно снести и продолжить обновление.

*

Оффлайн Kerlen

Обновлялся с 3.5, но не суть, там несколько неудачных попыток было.

Сейчас в системе под ID 453 зарегистрирован плагин "Кнопка - модуль" (editors-xtd). Что там было раньше уже не знаю, так обращался к хостеру и их специалисты каким-то насильственным методом провели "Реинсталл" Joomla, вот их отписка:
Цитировать
По пути, который вы описали мы провели обновление https://i.gyazo.com/7854159198569cecc2c7a512f953ed9d.png Во время обновления выдавало ошибки, которые мы обошли (ругалось на отсутствие индексов, таблиц, дубликаты ключей и пр.). Если вы попытаетесь еще раз обновить файлы ядра тем же путем, то вам будет вновь выдавать те же сообщения об ошибках. Изначально данные ошибки возникли из-за ошибок в обновлении самой Joomla или какого-то из модулей.

*

Оффлайн SeBun

  • ********
  • 3223
  • [+]189 / [-]5
  • Пол: Мужской
  • @SeBun48
    • Просмотр профиля
Эти варианты уже пробовал, эффекта не наблюдал.
Они и не дадут эффекта, та кнопка немного для других целей. Duplicate entry говорит о том, что вы пытаетесь создать то, что уже создано. Проблема в самой базе данных, в которой имеются на данный момент одинаковые поля. Такое случается довольно часто при неграмотной попытке переноса таблиц.

Попробуйте сделать следующее: делаем экспорт проблемной таблицы в текстовый файл, в данном случае это таблица #__extensions, содержащая список установленных расширений. Затем открываем полученный текстовый файл в редакторе, например в программе Notepad++ и меняем INCERT INTO на REPLACE INTO (в меню выбираем "заменить все"). После того, как таблица преобразована, сохраняем ее. Идем опять в phpMyAdmin, чистим таблицу (команда TRUNCATE TABLE, см. синтаксис MySQL) и импортируем полученный файл. При этом все дубликаты будут перезаписаны. Ошибка должна пропасть.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

Оффлайн Kerlen

Доброго времени суток.

Цитировать
делаем экспорт проблемной таблицы в текстовый файл, в данном случае это таблица #__extensions, содержащая список установленных расширений. Затем открываем полученный текстовый файл в редакторе, например в программе Notepad++ и меняем INCERT INTO на REPLACE INTO (в меню выбираем "заменить все"). После того, как таблица преобразована, сохраняем ее. Идем опять в phpMyAdmin, чистим таблицу (команда TRUNCATE TABLE, см. синтаксис MySQL) и импортируем полученный файл. При этом все дубликаты будут перезаписаны. Ошибка должна пропасть.

Попробовал выполнить предложенные действия. В написании INCERT INTO обнаружил ошибку, правильно INSERT INTO  ;). При импорте таблицы после TRUNCATE TABLE получил ошибку:

Ошибка

SQL запрос:

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `#_extensions`
--
ALTER TABLE `#_extensions`
  ADD PRIMARY KEY (`extension_id`),
  ADD KEY `element_clientid` (`element`,`client_id`),
  ADD KEY `element_folder_clientid` (`element`,`folder`,`client_id`),
  ADD KEY `extension` (`type`,`element`,`folder`,`client_id`);

Ответ MySQL: Документация
#1068 - Multiple primary key defined

Пошустрил интернет, нашёл рекомендацию удалить таблицу, что и сделал. Затем импортировал её, на этот раз успешно. Попробовал Реинсталл Joomla, всё прошло без ошибок, в конце получил сообщение:

Предупреждение
Обновить кэш манифеста не удалось: Расширение в настоящее время не установлено.
Статус обновления Joomla!

Ваш сайт был успешно обновлён. Версия Joomla 3.6.0.

Если я правильно понял, то теперь нужно искать криво работающее расширение?
« Последнее редактирование: 02.08.2016, 12:25:27 от Kerlen »

*

Оффлайн SeBun

  • ********
  • 3223
  • [+]189 / [-]5
  • Пол: Мужской
  • @SeBun48
    • Просмотр профиля
В написании INCERT INTO обнаружил ошибку, правильно INSERT INTO  ;).
Извиняюсь, спешил, опечатался.

Касательно ошибки: да, неполадки. Какая то строка в таблице теперь отсутствует. Попробуйте взять старую таблицу и новую, сравните их, быть может найдете проблемную запись, которую можно потом отдельно добавить.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

Оффлайн Kerlen

Найдётся, это уже проблема не из критичных. Большое благодарю за помощь!