Миграция c Joomla! 1.0 на 1.5

В свете туманной перспективы линейки Joomla! 1.0.x, после долгих взвешиваний все таки решился на переход на линейку, которая призвана покорять мир в будущем и настоящем – Joomla! 1.5.x
Получив целую тучу палок в колеса, решился на написание этой статьи, которая должна помочь избежать всяких проблем всем, кто займется миграцией.

Переход с 1.0 на 1.5 осуществляется либо с помощью компонентов, которые делают дамп базы данных, совместимый с Joomla! 1.5, либо вручную, путем того же выборочного дампа и некоторых правок. Пойдем по пути наименьшего сопротивления, тоесть мигрируем с помощью первого способа.
Изучив несколько компонентов, остановился на более простом и менее глючным по моему мнению – Migator от Sam Moffatt (http://pasamio.id.au), на текущий момент последняя версия — migrator_rc7.
Процесс миграции с помощью этого компонента подразумевает собой импортирование контента с Joomla! 1.0.x  в процессе создания нового сайта на Joomla! 1.5
Итак, вы скачали этот компонент с моего файлового архива, либо с официального сайта. Далее по порядку:


1. Резервный дамп базы и сайта

Напоминаю, что прежде чем делать какие либо деликатные процедуры с базой данных и файлами, необходимо сделать резервный дамп базы данных и копию файлов сайта.
2. Установка компонента миграции
Ставим наш компонент на сайт Joomla! 1.0.x, с которого вы хотите перенести контент. На некоторых конфигурациях сервера компонент не устанавливается и выдает ошибку:
Fatal error: Call to undefined method DOMIT_Lite_TextNode::getAttribute() in Z:home1.ruwwwadministratorcomponentscom_installerinstaller.class.php on line 316
или другую.
Для корректной установки компонента нужно открыть файл migrator.xml из архива и удалить закомментированные строчки (примерно 64-68):

<!--        <filename>images/backup.png</filename>
            <filename>images/backup_f2.png</filename>
            <filename>images/delete.png</filename>
            <filename>images/download.png</filename>
            <filename>images/sql_info.png</filename>-->

Понятия не имею зачем это сделано, но те кто скачал компонент с моего файлового архива, от этой радостной процедуры освобождаются – там уже все поправлено.
3.Создание SQL-файла миграции
В административной части сайта заходим в компонент и жмем кнопку «Create Migration SQL File»

Далее выбираем плагины, которые будут активированы при создании файла миграции (по умолчанию выбраны все). Помимо контента (плагин Content ETL) также можно перенести на новый сайт разделы, категории, баннеры, опросы, модули, ссылки и пользователей. Далее жмем кнопку «Start Migration >>» и наблюдаем за процессом создания дампа. После успешного завершения вы увидите сообщение «Migration complete!” и имя созданного дампа.

После идете в /administrator/components/com_migrator/dumps и забираете этот файл, или, щелкнув “Download”, загружаете этот дамп на компьютер.
4. Установка Joomla! 1.5.x и импорт данных
Следующим шагом будет установка нового сайта на CMS Joomla! 1.5. Вплоть до шестого шага установка проводится стандартно. На шаге 6:Конфигурация сразу начинаем работать с разделом «Загрузка демо-данных / Миграция или Восстановление с резервной копии».
Далее ставим ratio-точку «Загрузить скрипт миграции», указываем префикс таблиц старого сайта, его кодировку (кодировка, которая была на старом сайте) и местонахождение дампа. Также ставим нижнюю галочку, гласящую о том, что это именно файл импорта из прошлой версии Joomla!

После процесса импорта появится сообщение об результате миграции  и будет предложено продолжить установку.
Если мигрирование не состоялось то появится ошибка с описанием возможных причин.
Сбой загрузки! убедитесь, что папки 'tmp' и 'installation/sql/migration' доступны на запись. — в этом случае проверьте существование указанных папок а также их chmod (777). Если такая ошибка появляется при установке на локальном сервере (в частности на Denver) то возможно у вас слышком тяжелая база (более 2 Мб). В этом случае нужно в php.ini в строке upload_max_filesize = 2M выставить значение, не меньше размера вашей базы данных.

Поскольку поля таблицы jos_user уже заполнены, то введённые данные администратора будут проигнорированы — вместо них используйте пароль и адрес электронной почты администратора, которые были на старом сайте.

Некоторые особенности и полезные замечания.
•    Если у хостера либо на локальном сервере Denwer не установлена библиотека перекодировки iconv, то весь русский текст после импорта изчезнет. Имейте в виду.
Процесс установки iconv превосходно вот тут. Уточню только, что в статье пишется: 3-й Денвер изначально поставляется с библиотекой iconv.dll. Но несмотря на это у некоторых этой библиотеки небыло. У меня она была.
•    Возможно понадобится на локальном денвере в php.ini установить перед миграцией вместо max_execution_time = 30 хотя бы раз в 5 больше (и убедитесь что php.ini у вас подхватывается как надо).
•    В процессе миграции из содержания «псевдонимов» статей и разделов удаляются символы подчеркивания «_», поэтому если вы их использовали в предыдущей версии joomla для разделения транслит-слов, можно авансом запустить подобный запрос в базе, чтобы заменить этот символ «_» на символ «-»:

Update jos_content Set title_alias = replace(title_alias, '_', '-')

(Правильность запроса не гарантируется!)
•    Если вы мигрируете с версии 1.0.13 разработчики советуют поставить патч исправляющий ошибку сессии администратора от Rob Schley's
Какие еще особенности миграции?
•    Все комментарии Jcomments со старого сайта перенес с помощью экспорта-импорта таблицы jos_jcomments.
•    Картинки, вставленные с помощью мамбота mosimage пришлось перегнать по новому, ибо при миграции они остались, но со ссылкой на старый сайт.

Информация взята с сайта — http://www.eldia.org.ua

Спонсор: Полезная информация: компания производит качествено создание продвижение сайтов в Новосибирске

Мой блог находят по следующим фразам