В свете туманной перспективы линейки 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:\home\1.ru\www\administrator\components\com_installer\installer.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 пришлось перегнать по новому, ибо при миграции они остались, но со ссылкой на старый сайт.
Удачи!
| < Предыдущая | Следующая > |
|---|
Комментарии
Коммент от
Апр 08, 2009Комментатор
anonymosКоммент от
Апр 12, 2009Комментатор
Дмитрийспасибо!
Коммент от
Апр 30, 2009Комментатор
Максим#1146 [имя базы данных] .jos_migration_b acklinks' doesn't exist
Коммент от
Апр 30, 2009Комментатор
Aleks_El_DiaСообщает что такой таблицы не существует. Скорее всего вы не правильно выполняете п.4 из статьи.
Коммент от
Июн 09, 2009Комментатор
ПавелExecuting Task: Task #4; Table: categories; Start: 0; Amount to convert: 56; Total Rows: 56;
Fatal error: Call to undefined function utf8_decode() in /home/fiabciukr/domains/monarch-estate.com.ua/public_html/administrator/components/com_migrator/migrator.class.php on line 83"
В чем может быть проблема? Что я делаю неправильно?
Коммент от
Июн 14, 2009Комментатор
Aleks_El_DiaКоммент от
Июн 20, 2009Комментатор
hypnotizeКоммент от
Июн 20, 2009Комментатор
Павел- с помощью мигратора com_mtwmigrator -0.1.4 удачно удалось выдрать все необходимое из старого сайта. Для этого в папку, расположенную в корне, установил новую жумлу и запустил в ней мигратор.
- перенес старую жумлу в корневую папку old и подправил configuration.php чтоб работал сайт из этой папки
- в корень перенес новую жумлу
Вот так все уложилось в три строчки, но на деле были еще проблемы с хостером из-за чего жумла ругалась разными непристойностям и... пару звонков в суппорт и все заработало.
Коммент от
Июн 20, 2009Комментатор
Aleks_El_DiaВ идеале конечно перенести старый сайт на локальный сервер, а на его место на хосте начать установку нового сайта на Joomla! 1.5 и в процессе установки скормить ему дамп старого сайта
Коммент от
Июл 10, 2009Комментатор
t0xasWarning: array_unshift() [function.array-unshift]: The first argument should be an array in /var/www/veloextreme/libraries/joomla/html/parameter/element/menu.php on line 46
Warning: Invalid argument supplied for foreach() in /var/www/veloextreme/libraries/joomla/html/html/select.php on line 68
мысли есть?
RSS лента комментариев этой записи