Вы здесь: Статьи Статьи по Joomla! Миграция c Joomla! 1.0 на 1.5

Миграция 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:\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 пришлось перегнать по новому, ибо при миграции они остались, но со ссылкой на старый сайт.

Удачи!

 

Спасибо abbyevg
   
  top-iconВверх

Комментарии  

Коммент от
Апр 08, 2009
Комментатор
anonymos
+7 Замечательно! Реально очень помогла статья!
Коммент от
Апр 12, 2009
Комментатор
Дмитрий
+5 спасибо большое за статью и мигратор! практически вся миграция прошла без проблем. сайт несколько раз выдавал ошибку при импорте дампа, но после нескольких попыток все получилось. грешу на пиплнет :)
спасибо!
Коммент от
Апр 30, 2009
Комментатор
Максим
0 Вставляю миграционный дамп.SQL в базу данных и выдает такую ошибку:

#1146 [имя базы данных] .jos_migration_b acklinks' doesn't exist
Коммент от
Апр 30, 2009
Комментатор
Aleks_El_Dia
+1 Цитирую Максим:
Вставляю миграционный дамп.SQL в базу данных и выдает такую ошибку:

#1146 [имя базы данных] .jos_migration_b acklinks' doesn't exist

Сообщает что такой таблицы не существует. Скорее всего вы не правильно выполняете п.4 из статьи.
Коммент от
Июн 09, 2009
Комментатор
Павел
0 У меня на шаге создания SQL-файла выдает ошибку "If you have Javascript enabled the migrator will automatically progress until complete. Alternatively you can click next after each step

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
0 Приведите содержимое 80-85 строк файла /home/fiabciukr/domains/monarch-estate.com.ua/public_html/administrator/components/com_migrator/migrator.class.php
Коммент от
Июн 20, 2009
Комментатор
hypnotize
0 Единственное я тут не понял, после произведения успешного дампа. Сайт устанавливать в ту же директорию, где была старая версия джумлы? И еще вопрос, если в ту же директорию, то надо от туда удалять что нить, или все оставить все как есть?
Коммент от
Июн 20, 2009
Комментатор
Павел
+1 У меня все прошло успешно...
- с помощью мигратора com_mtwmigrator -0.1.4 удачно удалось выдрать все необходимое из старого сайта. Для этого в папку, расположенную в корне, установил новую жумлу и запустил в ней мигратор.
- перенес старую жумлу в корневую папку old и подправил configuration.php чтоб работал сайт из этой папки
- в корень перенес новую жумлу
Вот так все уложилось в три строчки, но на деле были еще проблемы с хостером из-за чего жумла ругалась разными непристойностям и... пару звонков в суппорт и все заработало.
Коммент от
Июн 20, 2009
Комментатор
Aleks_El_Dia
+1 Цитирую hypnotize:
Единственное я тут не понял, после произведения успешного дампа. Сайт устанавливать в ту же директорию, где была старая версия джумлы? И еще вопрос, если в ту же директорию, то надо от туда удалять что нить, или все оставить все как есть?

В идеале конечно перенести старый сайт на локальный сервер, а на его место на хосте начать установку нового сайта на Joomla! 1.5 и в процессе установки скормить ему дамп старого сайта
Коммент от
Июл 10, 2009
Комментатор
t0xas
0 сделал как написанно на локальном хосте, не денвер не ксамп, линукс. У меня вообще никаких признаков жизни крове админ панели, в админки наблюдаются следующего типа записи.


Warning: 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


мысли есть?

Оставить комментарий

Защитный код
Обновить

Популярные файлы

1.
Компонент Миграции с Joomla! 1.0.x на Joomla! 1.5.x
1446
2.
Хак постраничной навигации сайта на CMS Joomla!
485
3.
Дополнительное изменяемое поле "Телефон"
283

Последние комментарии

  • Спасибо большое за статью очень помогла ;-) .... д... Подробнее..
    От Benjamin Linus
  • Все проще. В файле plugins\system\ advancedmodule... Подробнее..
    От tvoyson
  • А где описание решения пункта 9? Подробнее..
    От Василий