Вы здесь: Статьи Статьи о 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-точку «Загрузить скрипт миграции», указываем префикс таблиц старого сайта (даже если на старом сайте у таблиц базы данных был префикс отличный от jos_ - все равно прописываем jos_ - так как скрипт мигратора прописывает этот префикс в дампе независимо от реального префикса таблиц), его кодировку (кодировка, которая была на старом сайте) и местонахождение дампа. Также ставим нижнюю галочку, гласящую о том, что это именно файл импорта из прошлой версии Joomla!

 

После процесса импорта появится сообщение об результате миграции  и будет предложено продолжить установку.

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

Ошибки миграции с Joomla 1.0 на Joomla 1.5

Если мигрирование не состоялось то появится ошибка с описанием возможных причин.
Сбой загрузки! убедитесь, что папки 'tmp' и 'installation/sql/migration' доступны на запись. - в этом случае проверьте существование указанных папок а также их chmod (777). Если такая ошибка появляется при установке на локальном сервере (в частности на Denver) то возможно у вас слышком тяжелая база (более 2 Мб). В этом случае нужно в php.ini в строке upload_max_filesize = 2M выставить значение, не меньше размера вашей базы данных.
MySQL: Lost connection to MySQL server during query - утеряно соединение с базой данных во время миграции. Если мигрируете на Денвере, откройте файл /usr/local/mysql-5.5/my.ini и увеличьте все значения параметров - я увеличивал в 10 раз - добавлял в конце значения параметра нолик.
MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ENGINE=MyISAM..." - ошибка, свидетельствующая о несовместимости бекапа с версией MySQL. Для решения ошибки необходимо в дампе миграции выполнить замену ENGINE=MyISAM на TYPE=MyISAM. Ошибка встречается при использовании, например, ETL плагина VirtueMart 1.0.

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

Некоторые особенности и полезные замечания.

•    Если у хостера либо на локальном сервере Denwer не установлена библиотека перекодировки iconv, то весь русский текст после импорта изчезнет. Имейте в виду.
Денвер изначально поставляется с библиотекой 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 пришлось перегнать по новому, ибо при миграции они остались, но со ссылкой на старый сайт.

Удачи!

 

Комментарии  

 
0 #61 Андрей 07.05.2012 12:37
Попробовал мигрировать с Joomla версии 1.0.12. на 1.5! После нажатия кнопки «Start Migration >>» выдало вот эту ошибку!
Fatal error: Call to a member function writeFile() on a non-object in Z:\home\....... \www\administra tor\components\ com_migrator\ad min.migrator.ph p on line 269
В чем проблема?
Цитировать
 
 
0 #62 Aleks_El_Dia 07.05.2012 18:55
Попробуйте для начала обновить J! 1.0.12 до 1.0.15
У меня не получилось воспроизвести ошибку.
Какая у версия php?
Цитировать
 
 
0 #63 Андрей 07.05.2012 22:30
В сборке денвера стоит php5.2 но я на верх отдельно ставил расширение php4 с сайта денвера! SQL File я смог вытащить с помощью более поздней версии это программы (migrator_rc5). Но у меня проблема другая возникла! SQL File у меня весит 10 M. Я согласно ваше инструкции изменил
upload_max_filesize это значение, но у меня оно увеличилось только до 8M и все! В чем проблема? А через FTP/SCP - это я предварительно загружал файл миграции в директорию installation/sq l/migration и переименовывал его в «migrate.sql». У меня ошибку выдавала в результате этого действия!
Цитировать
 
 
0 #64 Aleks_El_Dia 07.05.2012 22:42
Насколько я понял - вы отклонились от данной инструкции, с непонятной мне целью. Поэтому я не могу проследить все ваши действия и выявить ошибку.
Что касается размера БД - попробуйте сделать миграцию в два прохода - исключите сначала определенные плагины из процесса миграции и создайте дамп. Затем проделайте обратное (исключите уже мигрировавшие части сайта) и полученный дамп используйте для импорта в новую бд (но выборочно - импортировать нужно не все таблицы).
Цитировать
 

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


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

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

1.
Компонент Миграции с Joomla! 1.0.x на Joomla! 1.5.x
6075
2.
Плагин RESTFul миграции с Joomla! 1.5 на Joomla! 2.5 - JUpgrade Pro
4558
3.
Компонент миграции с Joomla! 1.0 на Joomla! 1.5 - mtwmigrator
3387

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

  • Огромное СПАСИБО! Подробнее....
    От ALEXANDR ERSHOV
  • Спасибо за подсказку! Обновила языковой пакет и вс... Подробнее....
    От Валентина
  • И ведь не сложная сама по себе штука, но пока знан... Подробнее....
    От Lstchk