[howto] Обновление Joomla либо перенос контента на другой сайт

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

Poliandra

  • Новичок
  • *
  • 9
  • 0
Добрый день!
У меня Джумла Паранойя 1.0.8.2
как ее обновить на более позднюю версию?
И если можно расскажите более подробно... Чтобы у меня никакая информация не потерялась.
Заранее благодарю.
« Последнее редактирование: 05.02.2008, 01:25:43 от beliyadm »
Перед попыткой стукнуть голову об стену - бывают просветления...

*

beliyadm

  • Профи
  • ********
  • 8359
  • 1527
  • Севастополь == Россия
Re: Как обновить Джумлу?
« Ответ #1 : 05.02.2007, 13:42:08 »
Первое правило - перед ЛЮБЫМИ изменениями сайта сделать дамп (backup, архив, резервную копию) БД и файлов

Способ первый - простой

1 - Сделать дамп БД и архив всех файлов.
 - При наличии PHPMyAdmin делается так: вкладка "Экспорт" - "Отметить все" - параметры по умолчанию - кнопка "Пошел". Результат можно сохранить в текстовом файле.
 - сделать обычный архив всех файлов сайта и сохранить в надежном месте
2 - перезаписать все существующие файлы данными из архива последней версии движка (желательно перезаписывать обновленные файлы  - в нормальных фтп-файловых менеджерах есть такая функция)
3 - посмотреть на результат - может немного отличаться от ожидаемого


Более надежный способ (хотя и более трудоемкий, рекомендуется когда результаты предыдущего шага не соответствуют ожиданиям и\или были большие модификации файлов движка).
Базу существующего сайта обзовем "база1", базу для установленной последнй версии "база2".
1 - на локалхосте (рекомендуется) поставить последнюю стабильную версию движка (в моем случае это была Joomla 1.0.12)
2 - выборочно переносить данные из таблиц старой базы в новую. Как - рассмотрим подробнее:
Перенести обязательно - цветом выделены обязательные для переноса таблицы
По желанию - таблицы, данные из которых можно восстановить из админки после обновления без особых проблем

_categories - таблица созданных категорий сайта
_sections - таблица разделов (секций) сайта
_content   - таблица содержит данные по всем материалам сайта из вышеуказанных разделов-категорий
_content_frontpage - содержит идентификаторы материалов для отображения на главной странице (не обязательна для переноса, можно позже из админки переназначить при необходимости)
_contact_details   - содержит контакты сайта
_menu   - пункты меню
_modules_menu - связь модулей с менюшками
_poll_data   _poll_date  _poll_menu  _polls   - все, связанное с голосованиями
_template_positions  - записывают в БД мозможные позиции для вывода модулей
_templates_menu - отвечают за регистрацию в БД шаблонов сайта
_weblinks - ссылки стаднартного компонента ссылок Joomla, если искользовался сторонний скрипт - переносить не имеет смысла
_users
_core_acl_aro
_core_acl_aro_groups _core_acl_aro_sections
_core_acl_groups_aro_map

Как осуществить выборочный перенос таблиц:
   1 - сделать дамп свежей версии новоустановленного движка (база1).
   2 - открыть в PHPMyAdmin (база 2) список таблиц, предпоследняя справа (обычно, может меняться в зависимости от версии админа) кнопочка "очистить" нам и нужна, нажимаем ее для каждой строки с таблицей, либо можно галочками отметить все и внизу выбрать "С отмеченными - очистить"
   3 переходим в "база1", выбираем вкладку "экспорт" и отмечаем одну строку для таблицы _sections и "Пошел". Из всего полученного результата выбираем только строки INSERT:
Цитировать
INSERT INTO `egorov_sections` VALUES (1, 'News', 'The News', 'articles.jpg', 'content', 'right', 'Select a news topic from the list below, then select a news article to read.', 1, 0, '0000-00-00 00:00:00', 5, 0, 1, '');
копируем полученный результат.
   4 переходим в управление "база2", находим вкладку "SQL" и в окошко вставляем скопированные строки и "пошел". В итоге должны получить "Ваш SQL-запрос был успешно выполнен". Если выдается ошибка - проверить все ли данные были предварительно очищены.
Шаги 3, 4 повторяем для каждой таблицы (на первые разы рекомендую делать все по отдельности)

3 - устанавливать последние версии компонентов и для них тоже выборочно делал INSERT существующими данными из старой версии. Какие именно таблицы надо переносить сложно сказать, надо предварительно зайти в "база1" и посмотреть содержимое таблиц (обычно они имеют в названии часть компонента)

4 - Аналогично поступить с модулями и мамботами
, поэтому не рекомендую автоматом переносить таблицы _modules  _components  _mambots, нужные настройки проще и надежнее восстановить руками

5 - у меня записано - какие системные файлы (движка и нужных компонентов-модулей) подвергались модификации (хакам), эти изменения вносил в новые файлы (поскольку у них структура может быть различной в старых версиях, простое перезаписывание опасно для жизни). Стоит обратить внимание, что слепое перезаписывание строк тоже чревато последствиями, стоит внимательней изучить код до и после изменений (если есть 33 различия - лучше задать вопрос гуглю или на форуме). Если версия компонента-модуля-бота не менялась, то можно просто после установки перезаписать новые файлы данными из старой версии
Потратил на все это дело для одного сайта порядка 4-х  часов, зато все работает как часы. Как пример - обновление с версии 1.0.3 до 1.0.12 (компоненты были обновлены с версии, соответствующей движку)

Еще несколько статей по данной теме (ну и конечно гугль в помощь):
База данных
Управление БД через веб-интерфейс
Бекапирование базы
« Последнее редактирование: 28.03.2007, 23:01:25 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb