Миграция конкретного контента XenForo

Привет, сообщество Discourse,

У меня есть много данных из старой базы данных XenForo, которые я хочу импортировать, но при этом я не хочу делать следующее:

В идеале, я хочу импортировать только темы и первое сообщение из каждой темы. Также я хочу переназначить создателя темы на другой аккаунт форума Discourse или пользователя, который я уже создал. Возможно ли это сделать относительно простым способом?

просто измените SQL в скрипте импорта

        SELECT p.post_id id,
               t.thread_id topic_id,
               #{@prefix_as_category ? "t.prefix_id" : "t.node_id"} category_id,
               t.title title,
               t.first_post_id first_post_id,
               t.view_count,
               p.user_id user_id,
               p.message raw,
               p.post_date created_at
        FROM #{TABLE_PREFIX}post p,
             #{TABLE_PREFIX}thread t
        WHERE p.thread_id = t.thread_id
        AND p.message_state = 'visible'
        AND t.discussion_state = 'visible'
        ORDER BY p.post_date
        LIMIT #{BATCH_SIZE}" # нужен OFFSET

dобавьте AND p.post_id = t.first_post_id в условие WHERE

Измените

mapped[:user_id] = user_id_from_imported_user_id(m["user_id"]) || -1

на

mapped[:user_id] = xxx

где xxx — это ID пользователя Discourse, которому вы хотите назначить темы.

@RGJ спасибо за быстрый ответ. Не могли бы вы показать мне SQL-запрос с правильным исправлением? Я попытался добавить AND p.post_id = t.first_post_id в условие WHERE, но получаю ошибки валидации SQL.

Кстати, где находится этот скрипт импорта?! Спасибо, что помогаете мне шаг за шагом, я это ценю.

Потратил часы на попытки, но толку почти нет. Разве для таких случаев в Discourse нет платной поддержки?

Вы, вероятно, могли бы создать тему в Marketplace.

Итак, я получаю эту ошибку:

cannot load such file – /var/discourse/config/environment

а в файле base.rb на строке 16 есть следующее:

require_relative “../../config/environment”

Ни в одном руководстве по импорту или миграции не упоминается тот факт, что этого файла не существует.