Роблемы после ручного обновления сайта

  • 4 Ответов
  • 224 Просмотров

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

*

dron

  • ******
  • 1120
  • 2
Добрый день.
Случилось так, что пришлось мне обновлять сайта. На нем были вирусы и куча дыр. Единственное что оставалось, это перенести таблицы бд вручную. Благо, контента на нем было не много: 100 статей, 5 категорий, 2 меню, да 4 модуля. Поставил нулевую Joomla 2.5, перенес картинки и такие таблицы из бд:
_content
_content_frontpage
_content_rating
Категории и меню создал с нуля, модули поставил новые.

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

Заранее спасибо!

p.s. Знаю что метод переноса идиотский, но других вариантов не было. Движок не обновлялся, плагины переноса не помогали, а сделать перенос требовалось срочно.

*

ChaosHead

  • ********
  • 4666
  • 396
Можно по идее переносить, но на ту-же версию Joomla 2.5.x обратите внимание на x.
Можно еще старый сайт на локалке обновить до 3 и перенести материалы вот этим например https://extensions.joomla.org/extension/j2xml/

Материалов с нулевым ид нету в бд?
Что там с autoincrement?

*

SeBun

  • *******
  • 3050
  • 185
  • @SeBun48
Вы неправильно перенос сделали, разрушив структуру базы. Делайте все заново, переносите сразу на последнюю 3.6.5. Делаем так: на локалке ставим OpenServer, на нем поднимаем ваш старый зараженный дырявый сайт. Ваша задача - перенести материалы с 1.5, верно? Для этого ставим на сайт компонент JUpgrade (так вам будет проще), найдете его в интернете. После установки делаете миграцию на Joomla 2.5. Поясню почему: у версии 1.5 и 2.5 разная структура хранения данных, разные таблицы. Мигратор соберет вам разделы так, как они должны быть. Не переносите больше ничего (можно меню подхватить, пригодиться).

После того, как 2.5 будет работать (шаблон protostar), ставите рядом 3.6.5, настраиваете. Далее переносим категории и материал из таблиц 2.5. Это таблицы _categories и _content. Обратите внимание, таблицы немного различаются, поэтому делаете экспорт только тех полей, которые есть в таблицах 3.6. Так же обратите внимание на уже имеющиеся в таблицах 3.6 данные, их трогать не нужно (относится к меню прежде всего). За меню отвечают две таблицы - _menu и _menu_types. Если есть пользователи и оны нужны, здесь так же две таблицы, _users и _user_usergroup_map (проверьте потом права пользователей в админке). Собственно все. Теперь про файлы - переносите только нужные изображения, проверяя каждое. Помните, что в них может быть вредоносный код, особенно в PNG-формате. Все картинки должны открываться. Напоследок напутствие - не тяните со старого сайта все подряд и не устанавливайте варез и сомнительные расширения на новом, не качайте бесплатный шаблон. На этом все.
« Последнее редактирование: 11.03.2017, 15:58:07 от SeBun »
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

dron

  • ******
  • 1120
  • 2
Спасибо всем кто отозвался. К сожалению, из-за спешки я задал вопрос не в той ветки.

Что касается самой проблемы. Как оказалось, довольно часто такое случается. Такая проблема иногда встречается при переносе сайта, или при обновлении. Проблема с в том, что содержимое (статьи, разделы меню, категории, товары в магазине и т.п.) переносятся со своими id. И почему-то бывает такое, что уже после переноса сайта при попытке создать новый материал, он получает id 0, и далее начинается новый отсчет id 1, 2, 3... А в перенесенной базе содержимое с таким id уже есть. Возникает конфликт... Как раз об этом и пишет уважаемый ProtectYourSite.

Решение такое: в бд через phpMyAdmin отыскать таблицы в которых есть содержимое (напримерб _menu, _content, _jshopping_products и т.п.), посмотреть какой id там крайний (например, 55), и выполнить sql запрос вида
ALTER TABLE префикс_имя_таблицы AUTO_INCREMENT = 56
Число в конце - это значение от которого будет вестись последующий отсчет id.

Всем спасибо за участие!