Миграция с Joomla 1.5 на Joomla 2.5

Предисловие
1. Перенос информационного наполнения
2. Перенос расширений:
  2.1. jDownloads и jComments
  2.2. Шаблон, редактор и другие расширения
Эпилог


Внимание! Прежде чем читать эту статью и выполнять инструкции в ней изложенные, обязательно прочтите Предисловие!


Я воспользовался известным компонентом jUpgrade. На тот момент его последней версией была 2.5.2. Ею я и продолжаю пользоваться, хотя на момент написания статьи они уже выпустили 3.0 PRO, кардинально отличающуюся от 2.5.2. Я попробовал ее, но запустить с двух попыток так и не смог, и отбросил. Функциональность предыдущей меня продолжает устраивать, по крайней мере те опции, которые я использовал. Почему я отказался от переноса сторонних расширений этой же утилитой, я попытался обосновать в предисловии. А та пара багов, с которой пришлось столкнуться, не смущает, если знаешь легкие способы их обойти. О чем речь - будет ясно из дальнейшего описания.

Скачать jUpgrade можно на сайте производителя - http://redcomponent.com. И обычная, и PRO - бесплатны, денег стоит только подписка на поддержку.

Если кто-то хочет попробовать разобраться с PRO версией jUpgrade, о результатах просьба сообщить.

Итак, что нужно иметь перед началом процесса:

  • Архив с компонентом jUpgrade - com_jupgrade-2.5.2.zip.
  • Архив с последним релизом Joomla 2.5. Скачать можно с офсайта и кучи других мест. На момент написания статьи это Joomla_2.5.9-Stable-Full_Package.zip.

Предположим, что директория исходного сайта на 1.5 - site1_5, данные расположены в базе с именем db1_5, префикс таблиц - jos_. Новый сайт расположим в папке site2_5, его базу данных назовем db2_5, префикс для примера будет - aaaaa_. Поехали!

  1. Создаем поддиректорию site2_5 в фолдере site1_5 исходного сайта.
  2. Распаковываем архив Joomla_2.5.X-Stable-Full_Package.zip в папку site2_5.
  3. Устанавливаем Joomla 2.5 с базой db2_5 и префиксом aaaaa_. Игнорируем требование удалить директорию 'installation'!
  4. Логинимся в админку сайта site1_5.
  5. Устанавливаем компонент jUpgrade стандартным образом через Расширения -> Менеджер расширений -> Установка.
  6. Идем в Расширения -> Менеджер плагинов. Находим плагин System - Mootools Upgrade. Если он выключен - включаем его, поскольку он требуется для работы jUpgrade.
  7. Идем в меню Компоненты и выбираем jUpgrade. Кликаем на кнопку Параметры в правом верхнем углу. Настраиваем как на скриншоте:

jUpgrade-01

Заполняем поля 'Target Directory', Prefix for old database и Prefix for new database в соответствии с нашими параметрами. Disable Error Reporting - оставляем 'Нет', чтобы получать информативные сообщения при неудачных попытках, а они, как станет ясно далее, будут иметь место. Выбираем пропустить загрузку и распаковку, поскольку мы уже сами подготовили фолдер нового сайта и установили в нем Джумлу 2.5. Шаблоны и сторонние расширения не переносим по соображениям, высказанным выше. Переносим только данные, для чего отвечаем 'Нет' на предложения пропустить миграцию для всех пунктов раздела Core skips. Delete previous migration - категорическое 'Нет', иначе jUpgrade затрет наш фолдер site2_5.

  1. Жмем Сохранить.

Прежде чем кликать Начать обновление, научимся бороться с двумя багами данной версии jUpgrade.

Такой странный момент: при первом запуске jUpgrade почему-то игнорирует выставленное в настройках пожелание пропустить загрузку и распаковку и начинает старательно их выполнять. На скриншоте видно, что пошел прогресс скачивания:

jUpgrade-02

Ради интереса один раз довел процесс до конца. Выяснилось, что jUpgrade нашла и скачала далеко не последнюю версию, что-то вроде 2.5.3, и заменила ею уже установленную мной 2.5.9. При этом, подчеркиваю, самодеятельность она проявляет только при первом запуске после установки. Поэтому жмем кнопку Назад и повторно кликаем Начать обновление. Вот теперь загрузка и распаковка действительно пропускаются:

jUpgrade-03

Зато выявляется новая напасть. Этап Процесс обновления выдает результат 'Migrating undefined'. Благодаря включенной опции получать сообщения об ошибках, наблюдаем появление все новых Warnings и Fatal Errors. И так до посинения.

Решение проблемы нашлось на форуме офсайта вот в этом обсуждении, и нашел его пользователь с ником Gerald. Сводится оно к замене строки 43 с

$jconfig->db_type = 'mysqli';

на

$jconfig->db_type = 'mysql';

в файле administrator/components/com_jupgrade/includes/install_config.php. Это еще один явный баг jUpgrade, они не проверяют настройку SQL Driver, выбор MySql в соответствующем дропбоксе в Параметрах не помогает, приходится изменять его принудительно. Gerald, спасибо!

Поэтому после настройки параметров выполняем два следующих шага:

  1. Редактируем файл install_config.php как описано выше.
  2. Запускаем Начать обновление и сразу нажимаем кнопку Назад.

Вот теперь норовистая jUpgrade укрощена, и можно ожидать от нее корректного выполнения задачи.

  1. Повторно запускаем Начать обновление. На этот раз процесс должен пройти гладко и завершиться выдачей сообщения 'Joomla 2.5 Upgrade Finished!':

jUpgrade-04

Таким образом мы перенесли из старой базы в новую информацию о пользователях и контактах, структуры меню, категорий и материалов, а также баннеры, веб-линки и RSS-ленты. В дополнение, jUpgrade скопировала фолдер images, переименовав оригинальный в images.orig. Папку media при этом не обновила несмотря на сообщение 'Coping images/media files'. Видимо, имелось в виду, что media-файлы также хранятся в фолдере images. Поэтому, если у вас имеются нужные файлы в других папках - самое время их скопировать на новый сайт.

Теперь можно зайти на новый сайт и в его админку и найти там данные со старого. Убедившись, что все в наличии, можно удалить фолдер installation, а папку самого сайта перенести в нужное место.

Итак, новый сайт получил привычный контент. Можно переходить к установке расширений и переносу их настроек и данных. Об этом - в продолжении.

Комментарии  

Quazimorda
0 # Quazimorda 04.06.2015 11:10
Изыскания завершились так: В ошибках на локальном веб-сервере удалось увидеть FatalError: MaxExicutionTime Limit 30. Установил этот лимит с 30 секунд на 3000 и миграция не без проблем, но прошла. В итоге в админку пускают, данные на сайте есть, вот только шаблон с joomla 1.5.x на 2.5.19 не перешёл. Как быть с этим? Неужели нужно шаблон отрисовывать "вручную"?
Ответить | Ответить с цитатой | Цитировать
Ogri
0 # Ogri 04.06.2015 11:39
Поздравляю! Ну да, теперь вам предстоит адаптировать расширения или подбирать новые. Про шаблон я там писал дальше в статьях. Добавить, по сути, нечего. Лично я под миграцию просто сконструировал новый шаблон в Artisteer, а потом ручками подрихтовал. А сейчас еще он ДОЛЖЕН быть адаптивным и легким, иначе Гугл понижает в выдаче.
Ответить | Ответить с цитатой | Цитировать
Quazimorda
0 # Quazimorda 04.06.2015 11:51
Я сархивировал тот, что был, установил через менеджер расширений, но если устанавливаю этот шаблон как умолчание для сайта, то - белая страничка. Это уже на хостинге. На локальном сервере шаблон вовсе не установился.
Ответить | Ответить с цитатой | Цитировать
Ogri
0 # Ogri 04.06.2015 12:32
Да он и на хостинге, по-видимому, установился только потому, что там игнорируются ошибки. Но установился криво, соответственно. Вам придется озаботиться созданием или приобретением нового шаблона. Нового - в смысле совместимого, выглядеть может как старый.
Ответить | Ответить с цитатой | Цитировать
Илья
0 # Илья 09.07.2015 04:08
Всем доброго дня. Делал по инструкции, доходит до обновления и выдает ошибку "Migrating undefined". Но фишка в том, что Jupgrade у меня, похоже, изначально не создает папку site2_5. Делал на виртуальной машине на локальном хосте. Ставил Jupgrade 2.5.2 и Joomla! 1.5.26. Сам Jupgrade на Джумлу поставился без ошибок в и в базу залил 4 таблицы. А когда начинаю обновлять Джумлу, получаю вот такие ошибки:


==========
[checks]

1

==========
[cleanup]

1

==========
[install_config]


Warning: require_once(C:\xampplite\htdocs\intranew\site2_5\ libraries/joomla/methods.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampplite\htdocs\intranew\administrator\compone nts\com_jupgrade\includes\install_config.php on line 27

Fatal error: require_once() [function.require]: Failed opening required 'C:\xampplite\htdocs\intranew\site2_5\libraries/jo omla/methods.php' (include_path='.;C:\xampplite\php\PEAR') in C:\xampplite\htdocs\intranew\administrator\compone nts\com_jupgrade\includes\install_config.php on line 27


==========
[install_db]


Warning: require_once(C:\xampplite\htdocs\intranew\site2_5\ libraries/joomla/methods.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampplite\htdocs\intranew\administrator\compone nts\com_jupgrade\includes\install_db.php on line 33

Fatal error: require_once() [function.require]: Failed opening required 'C:\xampplite\htdocs\intranew\site2_5\libraries/jo omla/methods.php' (include_path='.;C:\xampplite\php\PEAR') in C:\xampplite\htdocs\intranew\administrator\compone nts\com_jupgrade\includes\install_db.php on line 33


==========
[undefined] [undefined]


Warning: require_once(C:\xampplite\htdocs\intranew\site2_5\ libraries/joomla/factory.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampplite\htdocs\intranew\administrator\compone nts\com_jupgrade\includes\jupgrade.class.php on line 89

Fatal error: require_once() [function.require]: Failed opening required 'C:\xampplite\htdocs\intranew\site2_5\libraries/jo omla/factory.php' (include_path='.;C:\xampplite\php\PEAR') in C:\xampplite\htdocs\intranew\administrator\compone nts\com_jupgrade\includes\jupgrade.class.php on line 89
Ответить | Ответить с цитатой | Цитировать
Дмитрий!
0 # Дмитрий! 22.11.2017 12:18
А у меня все получилось. После целого дня танцев с бубном. Автору огромный респект!
Ответить | Ответить с цитатой | Цитировать
Grover
0 # Grover 18.04.2024 03:18
I'm impressed, I must say. Rarely do I encounter a blog that's both equally educative and entertaining, and let
me tell you, you've hit the nail on the head. The issue is something that not enough people are speaking intelligently about.

Now i'm very happy that I stumbled across tbis during my
hunt for something regardingg this.

Also visit my web site Cybersecurity Tips
Ответить | Ответить с цитатой | Цитировать
Olen
0 # Olen 18.04.2024 04:10
I'm not sure exactly why but this site is loading incredibly slow for
me. Is anyone else having this issu or is it a issue on my end?
I'll check back later on and see if the problem still exists.


my web site :: Sanat ve kültür
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий


Работая с этим сайтом, вы даете свое согласие на использование файлов cookie, необходимых для сохранения выбранных вами настроек, а также для нормального функционирования сервисов Google.