Как перенести сайт с joomla 2.5 на joomla 3 способ №1

Буквально несколько дней назад мне необходимо было перенести сайт с движка joomla 2.5.x на joomla 3.x.

На официальном сайте joomla (https://docs.joomla.org) было рекомендовано произвести миграцию, удалив старые, несовместимые с joomla 3.x, версии сторонних компонентов и пакетов.

Я несколько раз уже делал подобную миграцию раньше и она проходила успешно. Однако миграция этого сайта происходила с ошибками, после которых, либо сайт не запускался вообще, либо админка работала частично.

В связи с этим, я принял решение перенести контент и настройки старого сайта на свежеустановленную joomla 3.4.1.

Для этого я создал на хостинге тестовый поддомен и установил туда последнюю версию joomla.

При установке joomla 3.4.1 я заполнил название, email администратора, префикс базы данных и другие параметры идентично старому сайту.

Очень важно при заполнении параметров базы данных создать такой же префикс таблиц как на старом сайте.

Например, в старой базе данных префикс был psdfe_. Соответственно, и в новой базе данных также должен быть префикс psdfe_.

После установки я, в первую очередь, перенес файлы настроек.htaccess, configuration.php, robots.txt  и файлы yandex и google webmaster, тем самым перенеся настройки SEF и другие.

Далее, я установил на новый движок свежие, совместимые с joomla 3.x компоненты, плагины, модули.

И вот после этого, приступил к переносу контента.

Для этого я создал промежуточную базу данных.

Открыл в phpmyadmin базу данных старого сайта, выделил все таблицы и нажал экспорт.

Таким образом я экспортировал БД в файл .sql на мой компьютер.

После этого, я открыл только что созданную промежуточную базу данных и импортировал туда старую БД.

Делается это так. В phpmyadmin, открыв промежуточную БД,

Вы становитесь на название промежуточной БД и нажимаете кнопку импорт.

Выбираете файл .sql  старой БД и жмете кнопку Ок. Таким образом Вы получаете полную копию БД старого сайта, с которой можно безопасно производить манипуляции.

Приступим к самому интересному. В промежуточной БД (копия БД старого сайта) нам интересны таблицы psdfe_content (у Вас будет другой префикс), psdfe_menu, psdfe_menu_types и psdfe_categories. В дальнейшем, Вы должны быть очень внимательны.

Создайте, на всякий случай,  вышеуказанным способом резервную копию БД свежеустановленной joomla 3.x. Итак у Вас открыты в phpmyadmin обе БД - промежуточная и нового сайта. Выбираете таблицу psdfe_content и нажимаете ссылку "структура". После этого сравниваете структуру таблиц в обеих БД. При сравнении я обратил внимание что в таблице промежуточной БД (копия БД старого сайта) есть колонки title_alias, sectionid, mask, parentid, которых нет в аналогичной таблице БД нового сайта. То есть они лишние. Я удалил их из промежуточной БД (копия БД старого сайта) . Если этого не сделать, то mysql не сможет выполнить импорт, по причине ошибок запроса при попытке вставить несуществующие столбцы в таблицу БД нового сайта.

Итак мы привели таблицы в промежуточной БД (копия БД старого сайта) к структуре, идентичной структуре таблиц БД нового сайта. Теперь мы открываем таблицу psdfe_content промежуточной БД (копия БД старого сайта) и выделяем галочками все таблицы внутри нее.

И нажимаем экспорт. Получаем, например, файл content.sql (я назвал его так). Таблицы psdfe_content содержат все статьи старого сайта. После этого, открываем БД нового сайта, выделяем таблицу с таким-же названием psdfe_contentи нажимаем "очистить".


Это делается для того, чтобы случайно не совпали id старых таблиц с id новых таблиц при импорте. Вы просто очищаете базу данных нового сайта от каких-либо статей. Все готово. Снова открываете таблицу (она уже пустая)psdfe_content, нажимаете импорт, выбираете файл content.sql и переносите все статьи старого сайта в новый. То же самое повторяете и с остальными таблицами, которые содержат меню, категории и т. д. Схема действий такова - открываете, приводите таблицы к одной структуре (структуре таблицы БД нового сайта), экспорт/импорт. Далее необходимо скопировать все картинки (не системные картинки) относящиеся к материалам из папки /images старого сайта в папку /images нового сайта. После этого, открыв админку нового сайта, Вы увидите меню, категории, и материалы. И тут, в админке нового сайта, обязательно нужно последовательно открыть менеджер меню, менеджер категорий, менеджер материалов и нажать в них кнопку "перестроить". Если вы не сделаете этого, то при открытии и редактировании материала он не будет сохраняться выдавая ошибку. Также, обратите внимание что некоторые шаблоны, написанные под joomla 2.5 не работают под joomla 3.x поскольку используют вызовы старых функций joomla 2.5, которых нет в joomla 3.x. Были случаи мне приходилось заменять эти старые функции в шаблоне на эквивалентные новые, которые используются в joomla 3.x. В данной ситуации, поскольку была идея еще и обновить внешний вид сайта, я написал под него совершенно новый шаблон. После всего этого я просто перенес готовый сайт на новом движке в папку основного домена. В итоге я получил сайт на joomla 3.x с полностью скопированным контентом старого сайта. Пожалуй на этом все. Таким образом можно переносить и настройки компонентов, модулей. плагинов. Или переносить контент сайта с движка Joomla на движок Wordpress. И вообще извращаться в силу своего воображения.  

Желаю Вам удачи и успехов.

Автор: Darkeye.  

Прочитано 617 раз
Другие материалы в этой категории: Как разместить модуль в материале Joomla »
 
Яндекс.Метрика