Нужно перевести сайт с Postnuke на Drupal

Прислано: Yur

ср, 14/02/2007 - 08:47

Другие статьи по теме:

Нужно перевести сайт с PostNuke 0.7.5.0 (+ PNphpbb) на Drupal 5.x
Кого заинтересует, оставьте контакты в комментах или пишите в PM.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Bar в ср, 14/02/2007 - 21:11.

Я сейчас перехожу с ньюки на друпал и понял, что надо это делать самому и творчески - очень много новых возможностей открывается и идеология другая, лучше переделывать полностью.
Но перенсти старое содержание автоматом конечно хочется. Если кто делал импорт из ньюки в друпал, расскажите как.


Опубликовано Krotty@drupal.org в чт, 15/02/2007 - 06:43.

Я переводил один проект с php-nuke на drupal. Анализировал содержимое таблиц БД, и писал SQL-команды для переноса контента. Но абсолютно все перенести "автоматом" невозможно, а в некоторых случаях не оправдано по затратам времени. Поэтому часть специфического контента переносилась ручками девушек не сильно обремененных основной работой. :)


Опубликовано B.X в пт, 16/02/2007 - 21:48.

что значит невозможно? всё возможно, дело только в реализации...
например, всё переводишь в форум Друпала (из всем модулей php-nuke) и уже потом переносишь по разным категориям...

а уж составить скрипт автоматизации перевода - это не архисложная задача, было бы кому интересно... я знаю только один такой скрипт из PhpBB в Друпал... им и пользовался... (сначала из IPB в PhpBBб а потом в Друпал)...


Опубликовано MAMONT в пн, 26/02/2007 - 09:23.

Я написал сценарий sql запросов которые автоматически импортируют БД с postnuke 0.7.6.4 на drupal 5.1
Были импортированы категории, новости, коментарии, статистика просмотров новостей, пользователи.
Всё казалось бы заработало до поры до времени. Проблема проявилась при добавлении новой ноды.
Привожу скриншот проблемы. https://url.odesk.com/ycjyn
Дело в том что поле vid (id какойто то таксономии) должен быть уникален как и nid, вот я при импорте и сделал nid=vid, но это не правильно. А вот правильную зависимость разгадать не смог, хотя и смотрел тыблицу vocabularity.
Как решить проблему?

В дополнение к этому сценарию так же написан сценарий подмены пользователей postnuke с форума ipb, это мой частный случай, но может кому пригодится. как только доработаю полностью сценарий, то выложу его сюда и на drupal.org


Опубликовано Krotty@drupal.org в пн, 26/02/2007 - 11:13.

Ошибка в том, что vid это не "id какойто то таксономии", а id ревизии ноды. И при импорте данных, когда у тебя никаких ревизий нод нет, ты совершенно правильно сделал nid=vid.
Одно не понятно, в чем у тебя проявилась проблема-то?


Опубликовано MAMONT в пн, 26/02/2007 - 14:24.

Допустим это id ревизии. Но и в таблице ревизии присутвует уникальный vid, который я сделал равный nid всё тойже таблицы.
https://url.odesk.com/lyu9y Скриншот прилагается.

Я почему то интуитивно росшифровывал vid как vocabularity ID. Теперь призадумался ))


Опубликовано Krotty@drupal.org в пн, 26/02/2007 - 14:53.

vid в данном случае расшифровывается как version id.
В таблице {node} vid - это id активной ревизии. В таблице {node_revision} содержатся все ревизии соответствующих нод.
Но все равно не ясно в чем у тебя проблема. Если нет на сайте ревизий документов, то nid=vid в обеих таблицах. Все! :)


Опубликовано MAMONT в пн, 26/02/2007 - 15:18.

Дело в том что если я после импорта добавляю новую ноду, то она очень сильно старается записать vid как 1,2,3 и тд. А они заняты. Хотя в ...
Всё, эврика, я понял...
Мне надо в таблице счетчиков перезаписать еще одно значение :) Скриншот см. https://url.odesk.com/hk5k9

Спасибо тебе Krotty, без тебя бы я еще долго бы шел к цели ))


Опубликовано MAMONT в пн, 26/02/2007 - 15:21.

Хотя нет, всё таки не то.. vocabulary_vid=2 у меня.. думал что ее надо увеличить, но это за другое отвечает..
Сегодня попробую повбивать контент на новой инсталяции Друпала. Может замечу зависимость. Можэет я счетчик где-то затер, хотя врядли... Мысли мои мысли...


Опубликовано Krotty@drupal.org в пн, 26/02/2007 - 15:57.

Тебе нужно перезаписать в таблице {sequences} переменные node_nid и node_revisions_vid.


Опубликовано MAMONT в чт, 01/03/2007 - 09:56.

Почти закончил.
Конвертнул для теста сайт с БД 4 гектара, там новости и пользователи и многое другое... Но есть проблема, я штирлицом делал перекодировку исходной бд из непонятной в utf-8. Есть способ как при SELECT перекодировать на лету? Мне желательно именно в SELECT прописывать, так как импорт берется с двух БД, которые в разных кодировках, и все это через Join.


Опубликовано Krotty@drupal.org в чт, 01/03/2007 - 19:24.

Для изменения кодировки на лету в UTF8 используй функцию CONVERT(field USING UTF8), естественно у тебя должна быть корректно задана изначальная кодировка.


Опубликовано ultraboy@drupal.org в ср, 14/03/2007 - 07:11.

Сколько-сколько, 4 Гигабайта?!


Опубликовано MAMONT в вт, 27/03/2007 - 09:18.

совершенно верно :)


Опубликовано jason32 в чт, 29/03/2007 - 10:38.

а можно выложить конвертер, если не жалко? Или описать механизм действий....


Опубликовано MAMONT в пн, 27/07/2009 - 18:22.

Выложил бы, сам его теперь ищу. Помню что в свой блог закинул на этом сайте. А нет его там. Наверное лишь собирался. Еще на дисках поищу для истории))
Хотя оно уже мало актуально, так как я написал для себя модуль который перегоняет данные из любой CMS включая самописные скрипты в Drupal.

Естественно модуль не экстрасенс и структуру БД импортируемой ЦМС надо заранее описать. Модуль умеет импортировать DB из других CMS как на новый друпал, так и аттчить контент к уже существующим пользователям, нодам, комментариям, таксономии.

Пока что протестировал работу на импорте:
Postnuke to Drupal
Invision Board Forum (IBF) to Drupal
phpBB to Drupal

еще далее тестирую, так как существуют ньюансы (например версии импортируемых ЦМС), хотелось бы сделать более универсальным.


Ссылки партнёров