Нужно перевести сайт с Postnuke на Drupal
Прислано: Yur
ср, 14/02/2007 - 08:47
Нужно перевести сайт с PostNuke 0.7.5.0 (+ PNphpbb) на Drupal 5.x
Кого заинтересует, оставьте контакты в комментах или пишите в PM.
- Yur's blog
- Для комментирования войдите или зарегистрируйтесь
Я сейчас перехожу с ньюки на друпал и понял, что надо это делать самому и творчески - очень много новых возможностей открывается и идеология другая, лучше переделывать полностью.
Но перенсти старое содержание автоматом конечно хочется. Если кто делал импорт из ньюки в друпал, расскажите как.
- Для комментирования войдите или зарегистрируйтесь
Я переводил один проект с php-nuke на drupal. Анализировал содержимое таблиц БД, и писал SQL-команды для переноса контента. Но абсолютно все перенести "автоматом" невозможно, а в некоторых случаях не оправдано по затратам времени. Поэтому часть специфического контента переносилась ручками девушек не сильно обремененных основной работой. :)
- Для комментирования войдите или зарегистрируйтесь
что значит невозможно? всё возможно, дело только в реализации...
например, всё переводишь в форум Друпала (из всем модулей php-nuke) и уже потом переносишь по разным категориям...
а уж составить скрипт автоматизации перевода - это не архисложная задача, было бы кому интересно... я знаю только один такой скрипт из PhpBB в Друпал... им и пользовался... (сначала из IPB в PhpBBб а потом в Друпал)...
- Для комментирования войдите или зарегистрируйтесь
Я написал сценарий sql запросов которые автоматически импортируют БД с postnuke 0.7.6.4 на drupal 5.1
Были импортированы категории, новости, коментарии, статистика просмотров новостей, пользователи.
Всё казалось бы заработало до поры до времени. Проблема проявилась при добавлении новой ноды.
Привожу скриншот проблемы. https://url.odesk.com/ycjyn
Дело в том что поле vid (id какойто то таксономии) должен быть уникален как и nid, вот я при импорте и сделал nid=vid, но это не правильно. А вот правильную зависимость разгадать не смог, хотя и смотрел тыблицу vocabularity.
Как решить проблему?
В дополнение к этому сценарию так же написан сценарий подмены пользователей postnuke с форума ipb, это мой частный случай, но может кому пригодится. как только доработаю полностью сценарий, то выложу его сюда и на drupal.org
- Для комментирования войдите или зарегистрируйтесь
Ошибка в том, что vid это не "id какойто то таксономии", а id ревизии ноды. И при импорте данных, когда у тебя никаких ревизий нод нет, ты совершенно правильно сделал nid=vid.
Одно не понятно, в чем у тебя проявилась проблема-то?
- Для комментирования войдите или зарегистрируйтесь
Допустим это id ревизии. Но и в таблице ревизии присутвует уникальный vid, который я сделал равный nid всё тойже таблицы.
https://url.odesk.com/lyu9y Скриншот прилагается.
Я почему то интуитивно росшифровывал vid как vocabularity ID. Теперь призадумался ))
- Для комментирования войдите или зарегистрируйтесь
vid в данном случае расшифровывается как version id.
В таблице {node} vid - это id активной ревизии. В таблице {node_revision} содержатся все ревизии соответствующих нод.
Но все равно не ясно в чем у тебя проблема. Если нет на сайте ревизий документов, то nid=vid в обеих таблицах. Все! :)
- Для комментирования войдите или зарегистрируйтесь
Дело в том что если я после импорта добавляю новую ноду, то она очень сильно старается записать vid как 1,2,3 и тд. А они заняты. Хотя в ...
Всё, эврика, я понял...
Мне надо в таблице счетчиков перезаписать еще одно значение :) Скриншот см. https://url.odesk.com/hk5k9
Спасибо тебе Krotty, без тебя бы я еще долго бы шел к цели ))
- Для комментирования войдите или зарегистрируйтесь
Хотя нет, всё таки не то.. vocabulary_vid=2 у меня.. думал что ее надо увеличить, но это за другое отвечает..
Сегодня попробую повбивать контент на новой инсталяции Друпала. Может замечу зависимость. Можэет я счетчик где-то затер, хотя врядли... Мысли мои мысли...
- Для комментирования войдите или зарегистрируйтесь
Тебе нужно перезаписать в таблице {sequences} переменные node_nid и node_revisions_vid.
- Для комментирования войдите или зарегистрируйтесь
Почти закончил.
Конвертнул для теста сайт с БД 4 гектара, там новости и пользователи и многое другое... Но есть проблема, я штирлицом делал перекодировку исходной бд из непонятной в utf-8. Есть способ как при SELECT перекодировать на лету? Мне желательно именно в SELECT прописывать, так как импорт берется с двух БД, которые в разных кодировках, и все это через Join.
- Для комментирования войдите или зарегистрируйтесь
Для изменения кодировки на лету в UTF8 используй функцию CONVERT(field USING UTF8), естественно у тебя должна быть корректно задана изначальная кодировка.
- Для комментирования войдите или зарегистрируйтесь
Сколько-сколько, 4 Гигабайта?!
- Для комментирования войдите или зарегистрируйтесь
совершенно верно :)
- Для комментирования войдите или зарегистрируйтесь
а можно выложить конвертер, если не жалко? Или описать механизм действий....
- Для комментирования войдите или зарегистрируйтесь
Выложил бы, сам его теперь ищу. Помню что в свой блог закинул на этом сайте. А нет его там. Наверное лишь собирался. Еще на дисках поищу для истории))
Хотя оно уже мало актуально, так как я написал для себя модуль который перегоняет данные из любой CMS включая самописные скрипты в Drupal.
Естественно модуль не экстрасенс и структуру БД импортируемой ЦМС надо заранее описать. Модуль умеет импортировать DB из других CMS как на новый друпал, так и аттчить контент к уже существующим пользователям, нодам, комментариям, таксономии.
Пока что протестировал работу на импорте:
Postnuke to Drupal
Invision Board Forum (IBF) to Drupal
phpBB to Drupal
еще далее тестирую, так как существуют ньюансы (например версии импортируемых ЦМС), хотелось бы сделать более универсальным.
- Для комментирования войдите или зарегистрируйтесь




Комментарии