Первое правило - перед ЛЮБЫМИ изменениями сайта сделать дамп (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 (компоненты были обновлены с версии, соответствующей движку)
Еще несколько статей по данной теме (ну и конечно гугль в помощь):
База данныхУправление БД через веб-интерфейсБекапирование базы