I know this is a bit of an old topic, but I’ve just completed a comparably sized vb4 migration and am missing a LOT of image attachments, somewhere on the order of 75% of them I’d wager. They are not tombstoned, and all the threads have been rebaked.
Has anyone else dealt with this? How should I go about recovering those images?
Yes, quite a few ‘Attachment file doesn’t exist’ errors with some ‘Couldn’t find attachment record for post.id=xxx, import_id=xxx’ sprinkled in.
The thing that has me scratching my head is that these are posts that I know have intact attachments, and that those attachments are in the ATTACHMENT_DIR global directory. The threads with missing images are missing ALL the associated images, which seems… not random.
I’m at a loss to find any common factor among the threads/posts with lost images either.
Я хотел попробовать Discourse, конвертировав нашу значительную базу данных VBulletin, поэтому решил опробовать этот скрипт.
Он импортировал пользователей и группы, но несколько раз не удавалось импортировать подкатегории.
импортируются категории верхнего уровня...
7 / 7 (100.0%) [902 элементов/мин] n]
импортируются дочерние категории...
Traceback (most recent call last):
5: from script/import_scripts/vbulletin.rb:942:in `<main>'
4: from /home/peterb/discourse/script/import_scripts/base.rb:47:in `perform'
3: from script/import_scripts/vbulletin.rb:84:in `execute'
2: from script/import_scripts/vbulletin.rb:287:in `import_categories'
1: from script/import_scripts/vbulletin.rb:287:in `each'
script/import_scripts/vbulletin.rb:289:in `block in import_categories': undefined method `[]' for nil:NilClass (NoMethodError)
Я проверил различные вещи, такие как кодировка UTF8, ресурсы сервера и т. д., но теперь я немного в тупике, что ещё можно проверить.
Есть какие-нибудь идеи?
Спасибо.
Да, похоже, вы разобрались. Такие сбои скорее правило, чем исключение. Потом нужно решить: исправлять проблему в базе данных или доработать код, чтобы он корректно работал с повреждённой базой.
Типичная ситуация с любой миграцией данных: какой бы скрипт вы ни нашли, он никогда не учтёт все возможные сценарии. Не помогает и то, что единственное время, когда у меня есть возможность поработать над этим, — это глубокая ночь (это бесплатная работа для моего автоклуба). Сайт на vBulletin довольно сильно кастомизирован, так что посмотрим, какие ещё сюрпризы меня ждут.
Я понимаю, что существует скрипт для импорта из vBulletin 4, но я не вижу ничего касательно перенаправления всех URL-адресов в новый формат URL Discourse.
Как вы с этим справляетесь? Что происходит со всеми внешними ссылками на ваших форумах?
Спасибо, @RGJ, но не могли бы вы объяснить, как это работает в реальной жизни? Что именно делает этот скрипт? Создает ли он какие-то псевдонимы URL-адресов (в Discourse) для текущих/правильных импортированных URL-адресов Discourse?
Как бы вы порекомендовали перенести старый домен на Vbulletin (www.example1.com) на новый домен на Discourse (www.exmple2.com)?
Мне кажется, что в идеале старый домен форума должен перенаправлять весь входящий трафик и ссылки на новый домен на основе списка правил 301-перенаправления. Как бы вы порекомендовали составить такой список правил перенаправления?
У меня проблема с неполным импортом вложений, похожая на ту, что упоминалась ранее, но скрипт не выдаёт никаких ошибок.
База данных небольшая (71 МБ), и весь импорт завершается за 0 мин 23 сек.
Большинство вложений отсутствуют в сообщениях.
Я выполнил SQL-запросы к моей базе данных vb4 напрямую, как они указаны в скрипте, и они возвращают корректные данные, поэтому пока не понимаю, в чём проблема…
Разве отсутствующие вложения не связаны напрямую в постах? Я полагаю, что скрипт извлекает только изображения, упомянутые в постах, а не те, что просто прикреплены к посту.
У меня есть скрипт для их импорта, но я ещё не успел отправить pull request.
Если у вас есть бюджет, дайте мне знать. Я планирую отправить версию после завершения этого импорта, но мне нужно удалить довольно много кода, который нужен только для этого импорта, поэтому этого не произошло год назад…