Долгое время мой блог существовал на базе CMS/CMF Drupal. Это супер система, но она слишком гибкая для блогов, имхо. Слишком многое нужно установить и слишком многое подпилить, чтобы сделать банальный блог. Поэтому возникла идея эксперимента — перенос блога с платформы Drupal на платформу WordPress.
Но тут случился «затык». Если перенести блог из WordPress в Drupal предлагается +100500 методов. Я может и утрирую, но вариантов действительно не мало. А вот перенести блог из Drupal в WordPress оказалось намного-намного проблематичнее.
За всё время существования этих система я нашел два метода: перенос путем соединения двух баз и выполнения определенных SQL-команд. Второй — исполнение специального скрипта миграции Drupal2Wordpress (Есть по одному скрипту для миграции с Drupal 5, 6 и 7).
Ну, и не так давно добавился третий — сайт миграции cms2cms.com. Но движок у ребят сырой-пресырой. Это даже не бета, а альфа. Во всяком случае, с моим блогом, как было сказано техподдержкой существуют определенные технические сложности, которые они старались решить на протяжении недели. Хотя блог стандартный, хостинг тоже вполне себе стандартный — it-patrol.ru Но так ничего у них не вышло. Хотя ребята хорошие и отзывчивые. Техподдержка отличная. Ну, не заладилось что-то. С кем не бывает.
Но я то прошел суровую друпаловскую школу 🙂 — хочешь сделать всё хорошо, сделай всё сам. Интеграция баз данных друпал и вордпресс, и исполнение SQL было признано не кошерным. Поэтому за основу миграции был взят скрипт Drupal2Wordpress для седьмой версии друпала. Базисом разработки скрипта послужил пост отсюда.
Однако, буржуйский скрипт ни в какую не хотел работать с кирилическими данными — при переносе все кириллические символы преобразовывались в знаки вопроса.
Короче, дальше не буду углубляться. Были перепробованы различные способы смены кодировки скрипта и подключения к базе данных. В итоге получилася рабочая версия скрипта, который позволяет провести миграцию блога из Drupal 7 в WordPress 3.x
Переносит:
- посты;
- комментарии;
- таксомномию;
- связь постов с таксономией.
Доделывать миграцию файлов мне некогда. Потому как в постах у меня в основном ссылки на изображения с других доменов. Если кому нужно, то сможет по образу и подобию переделать скрипт сам.
Всё остальное, при желании, делается в базе данных SQL-запросами.
Скачать архив с php-скриптом миграции Drupal2Wordpress. Рецепт прост: копируем Drupal2Wordpress.php и php-mysql.php в корень или отдельную папку в корне сайта. Редактируем Drupal2Wordpress.php — вносим данные для подключения к базе. Потом просто заходим на сайт и исполняем скрипт. Он сам отчитается что сделано, а что нет.
Предупреждение!!! Скрипт первым делом чистит базы WordPress
Плюс два скрипта: для проверки кодировки исполнения скрипта, а также скрипт проверки кодировки базы данных и соединения с ней.
Ярослав
Приветствую!!!
Подскажите пожалуйста, Роман.
А для друпал 5, подойдёт сей чудный скрипт?
Пытался и на последнем вордпресе и версию 3.1 для этого поставил.
Денвер стоит с PHP Version 5.3.13
Выдаёт вот такую ошибку при запуске http://booo.ru/Drupal2Wordpress.php:
Fatal error: Cannot unset string offsets in Z:\home\booo.ru\www\php-mysql.php on line 55
Роман
Здравствуйте, Ярослав!
Огорчу — не должен подойти. У 5 и 7 разные БД, а скрипт соотносит различные поля drupal и wordpress
Но попытаться откорректировать скрипт можете. Получится или нет? Вопрос из рубрики — не попробуешь, не узнаешь
Светлана
Добрый день! Возникла необходимость переноса сайта с Друпал на ВП, поэтому прочла статью очень внимательно, но я новичок — возникли вопросы. Не могли бы Вы объяснить более подробно вот что:
1). Цитата — «Редактируем Drupal2Wordpress.php — вносим данные для подключения к базе». Куда именно надо внести и какие данные?
2). Цитата — «Потом просто заходим на сайт и исполняем скрипт.» Такое я еще ни разу не делала. Объясните более подробно как это сделать.
3) Цитата — «Плюс два скрипта: для проверки кодировки исполнения скрипта, а также скрипт проверки кодировки базы данных и соединения с ней.» Эти скрипты тоже надо запускать?
Может мои вопросы покажутся Вам наивными, но Ваш ответ очень важен для меня. Заранее спасибо.
Роман
Добрый день, Светлана!
Всё-таки лучше, если вы найдете специалиста.
Попробую пояснить.
Перед всеми действиями. Делаем бэкап сайта и базы данных.
«Редактируем Drupal2Wordpress.php» — в этом файле нужно указать вcе пустые параметры. Как то: $DB_HOSTNAME, $DB_WP_USERNAME, $DB_WP_PASSWORD, $DB_WORDPRESS, $DB_DP_USERNAME, $DB_DP_PASSWORD, $DB_DRUPAL, $DB_WORDPRESS_PREFIX, $DB_DRUPAL_PREFIX.
Данные берутся у хостера.
«Потом просто заходим на сайт и исполняем скрипт» — проще говоря, его нужно вызвать в браузере. Т.е. если вы разархивировали его в папку d2w вашего сайта, то нужно в браузере набрать yousite.com/d2w/Drupal2Wordpress.php
«Плюс два скрипта: для проверки кодировки исполнения скрипта, а также скрипт проверки кодировки базы данных и соединения с ней.» — лишним не будет. Исполнять также как и выше.
Посмотрите еще по ссылке http://broweb.ru/cms/drupal-to-wordpress/
Светлана
Роман, спасибо за подробные пояснения.
Anatoly Tarasenko (ksbw)
Спасибо за ваш скрипт, но у меня этим способом не получилось. Съехали названия постов. Заголовок 1 Текст 2 Заголовок 2 Текст 3 и так далее по всему блогу. Так же проблема с анонсами статей. Результат от работы плагина drupal2wordpress лучше.
Роман
Вам спасибо за коммент.
Посмотрел код, вроде как всё в порядке. Хотя программист из меня еще тот )))
времени прошло достаточно много: уже и друпал столько раз обновился и wordpress.
Как идея: поставьте drupal 7.21 и wordpress 3.6
Старые версии можно найти в официальных репозитариях.
Но в принципе я специально давал три варианта: хоть один, но сработает
Anatolt
1. не понял о каких вариантах идёт речь. скрипт же один
2. идея поставить старый wp интересная, но мне всё это так уже надоело, что я всё снёс и перенёс только то, что перенеслось
3. оповещение с вашего сайта сначала пришло с кривыми кодировками, а потом с нормальными http://at02.ru/i/2016-03-24_105949.png
Роман
Первый — cms2cms, второй — drupal2wordpress, третий — скрипт.
Хотя я сделал примерно также — перенес, что перенеслось. А потом вручную редактировал
Алексей
Спасибо огромное за рабочий скрипт!!! Все перенес без проблем, даже править ничего не пришлось! Хотя, тоже думал, что придется долго и нудно потеть, все переписывая.
Кристина
Здравствуйте, Роман!
Спасибо за краткий обзор нашего сервиса CMS2CMS. Как Вы правильно подметили, движок действительно нуждаеться в доработке, что мы и делаем. Но со времени Вашей публикации уже запущена коммерческая версия, добавлены новые опции и платформы и работает инструмент в разы лучше.
Сожалею, что Ваше знакомство с CMS2CMS не было успешным, но Вы могли бы протестировать сервис теперь и убедиться в его функциональности.
C уважением,
Кристина Сарабун
Маркетинг менеджер СMS2CMS
Роман
Спасибо, Кристина, за ответ. Как я писал в посте, просто не судьба была воспользоваться вашим сервисом ))))
Поэтому у тех, кто предпринимает попытки перенести блог с drupal на wordpress, есть две рабочие альтернативы: или онлайн сервис cms2cms или всё ручками с помощью скрипта
Дмитрий Воронцов
Спасибо, очень помогли! Всё перенеслось отлично, сработало, как часы. Я ожидал чего-то мучительного и морально готовился два дня. А оказался просто редкий случай, чтобы такая длинная последовательность операций, какая нужна для миграции сайта, прошла без задоринки.
И вообще приятный у Вас сайт. Сразу чувствуется, что автору можно доверять:)
Роман
Спасибо.
Рад, что все получилось.
Нелишним будет зайти в вебмастер гугла и посмотреть неправильные ссылки, чтобы поправить переадресацию