Drupal 2 WordPress. Миграция блога из Drupal 7 в WordPress 3.x

Долгое время мой блог существовал на базе 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

Плюс два скрипта: для проверки кодировки исполнения скрипта, а также скрипт проверки кодировки базы данных и соединения с ней.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

17 комментариев

  1. Приветствую!!!
    Подскажите пожалуйста, Роман.
    А для друпал 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

    1. Здравствуйте, Ярослав!
      Огорчу — не должен подойти. У 5 и 7 разные БД, а скрипт соотносит различные поля drupal и wordpress
      Но попытаться откорректировать скрипт можете. Получится или нет? Вопрос из рубрики — не попробуешь, не узнаешь

  2. Добрый день! Возникла необходимость переноса сайта с Друпал на ВП, поэтому прочла статью очень внимательно, но я новичок — возникли вопросы. Не могли бы Вы объяснить более подробно вот что:
    1). Цитата — «Редактируем Drupal2Wordpress.php — вносим данные для подключения к базе». Куда именно надо внести и какие данные?
    2). Цитата — «Потом просто заходим на сайт и исполняем скрипт.» Такое я еще ни разу не делала. Объясните более подробно как это сделать.
    3) Цитата — «Плюс два скрипта: для проверки кодировки исполнения скрипта, а также скрипт проверки кодировки базы данных и соединения с ней.» Эти скрипты тоже надо запускать?
    Может мои вопросы покажутся Вам наивными, но Ваш ответ очень важен для меня. Заранее спасибо.

    1. Добрый день, Светлана!
      Всё-таки лучше, если вы найдете специалиста.
      Попробую пояснить.
      Перед всеми действиями. Делаем бэкап сайта и базы данных.
      «Редактируем 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/

  3. Спасибо за ваш скрипт, но у меня этим способом не получилось. Съехали названия постов. Заголовок 1 Текст 2 Заголовок 2 Текст 3 и так далее по всему блогу. Так же проблема с анонсами статей. Результат от работы плагина drupal2wordpress лучше.

    1. Вам спасибо за коммент.
      Посмотрел код, вроде как всё в порядке. Хотя программист из меня еще тот )))
      времени прошло достаточно много: уже и друпал столько раз обновился и wordpress.
      Как идея: поставьте drupal 7.21 и wordpress 3.6
      Старые версии можно найти в официальных репозитариях.
      Но в принципе я специально давал три варианта: хоть один, но сработает

      1. 1. не понял о каких вариантах идёт речь. скрипт же один
        2. идея поставить старый wp интересная, но мне всё это так уже надоело, что я всё снёс и перенёс только то, что перенеслось
        3. оповещение с вашего сайта сначала пришло с кривыми кодировками, а потом с нормальными http://at02.ru/i/2016-03-24_105949.png

        1. Первый — cms2cms, второй — drupal2wordpress, третий — скрипт.
          Хотя я сделал примерно также — перенес, что перенеслось. А потом вручную редактировал

  4. Спасибо огромное за рабочий скрипт!!! Все перенес без проблем, даже править ничего не пришлось! Хотя, тоже думал, что придется долго и нудно потеть, все переписывая.

  5. Здравствуйте, Роман!
    Спасибо за краткий обзор нашего сервиса CMS2CMS. Как Вы правильно подметили, движок действительно нуждаеться в доработке, что мы и делаем. Но со времени Вашей публикации уже запущена коммерческая версия, добавлены новые опции и платформы и работает инструмент в разы лучше.

    Сожалею, что Ваше знакомство с CMS2CMS не было успешным, но Вы могли бы протестировать сервис теперь и убедиться в его функциональности.

    C уважением,
    Кристина Сарабун
    Маркетинг менеджер СMS2CMS

    1. Спасибо, Кристина, за ответ. Как я писал в посте, просто не судьба была воспользоваться вашим сервисом ))))
      Поэтому у тех, кто предпринимает попытки перенести блог с drupal на wordpress, есть две рабочие альтернативы: или онлайн сервис cms2cms или всё ручками с помощью скрипта

  6. Спасибо, очень помогли! Всё перенеслось отлично, сработало, как часы. Я ожидал чего-то мучительного и морально готовился два дня. А оказался просто редкий случай, чтобы такая длинная последовательность операций, какая нужна для миграции сайта, прошла без задоринки.

    И вообще приятный у Вас сайт. Сразу чувствуется, что автору можно доверять:)

    1. Спасибо.
      Рад, что все получилось.
      Нелишним будет зайти в вебмастер гугла и посмотреть неправильные ссылки, чтобы поправить переадресацию

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Вверх

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: