Міграція з Joomla 1.5 на Joomla 2.5
Я скористався відомим компонентом jUpgrade. На той момент його останньою версією була 2.5.2. Нею я і продовжую користуватися, хоча на момент написання статті вони вже випустили 3.0 PRO, кардинально відрізняється від 2.5.2. Я спробував її, але запустити з двох спроб так і не зміг, і відкинув. Функціональність попередньої мене продовжує влаштовувати, принаймні ті опції, які я використовував. Чому я відмовився від перенесення сторонніх розширень цієї ж утилітою, я спробував обгрунтувати в передмові. А та пара багів, з якою довелося зіткнутися, не бентежить, якщо знаєш легкі способи їх обійти. Про що мова - буде ясно з подальшого опису.
Якщо хтось хоче спробувати розібратися з 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_. Поїхали!
- Створюємо піддиректорію site2_5 в Фолдер site1_5 вихідного сайту.
- Розпаковуємо архів Joomla_2.5.X-Stable-Full_Package.zip в папку site2_5.
- Встановлюємо Joomla 2.5 з базою db2_5 і префіксом aaaaa_. Ігноруємо вимога видалити директорію 'installation'!
- Логіном в адмінку сайту site1_5.
- Встановлюємо компонент jUpgrade стандартним чином через Розширення -> Менеджер розширень -> Установка.
- Йдемо в Розширення -> Менеджер плагінів. Знаходимо плагін System - Mootools Upgrade. Якщо він вимкнений - включаємо його, оскільки він потрібний для роботи jUpgrade.
- Йдемо в меню Компоненти і вибираємо jUpgrade. Кількома на кнопку Параметри в правому верхньому куті. Налаштовуємо як на скріншоті:
Перш ніж кликати Почати оновлення. навчимося боротися з двома багами даної версії jUpgrade.
Такий дивний момент: при першому запуску jUpgrade чомусь ігнорує виставлене в налаштуваннях побажання пропустити завантаження і розпакування і починає старанно їх виконувати. На скріншоті видно, що пішов прогрес скачування:
Заради інтересу один раз довів процес до кінця. З'ясувалося, що jUpgrade знайшла і скачала далеко не останню версію, щось на зразок 2.5.3, і замінила нею вже встановлену мною 2.5.9. При цьому, підкреслюю, самодіяльність вона проявляє тільки при першому запуску після установки. Тому тиснемо кнопку Назад і повторно натискаємо Почати оновлення. Ось тепер завантаження і розпакування дійсно пропускаються:
Зате виявляється нова напасть. Етап Процес оновлення видає результат 'Migrating undefined'. Завдяки включеній опції отримувати повідомлення про помилки, спостерігаємо появу все нових Warnings і Fatal Errors. І так до посиніння.
Рішення проблеми знайшлося на форумі офсайта ось в цьому обговоренні, і знайшов його користувач з ніком Gerald. Зводиться воно до заміни рядка 43 з
в файлі administrator / components / com_jupgrade / includes / install_config.php. Це ще один явний баг jUpgrade, вони не перевіряють настройку SQL Driver. вибір MySql у відповідному дропбоксе в Параметрах не допомагає, доводиться змінювати його примусово. Gerald, спасибі!
Тому після налаштування параметрів виконуємо два наступні кроки:
- Редагуємо файл install_config.php як описано вище.
- Запускаємо Почати оновлення і відразу натискаємо кнопку Назад.
Ось тепер норовиста jUpgrade приборкана, і можна очікувати від неї коректного виконання завдання.
- Повторно запускаємо Почати оновлення. На цей раз процес повинен пройти гладко і завершитися видачею повідомлення 'Joomla 2.5 Upgrade Finished!' :
Тепер можна зайти на новий сайт і в його адмінку і знайти там дані зі старого. Переконавшись, що все в наявності, можна видалити фолдер installation, а папку самого сайту перенести в потрібне місце.
Отже, новий сайт отримав звичний контент. Можна переходити до установки розширень і переносу їх налаштувань і даних. Про це - в продовженні.