У меня возник следующий вопрос:
С 2017 года у меня есть форум на SMF с примерно 4000 сообщениями.
В прошлом году параллельно существовал форум на Discourse с около 1000 сообщениями, но в данный момент он не работает, так как в декабре 2021 года я вернулся к SMF.
Дело в том, что мне больше не нравится SMF, поэтому я хочу мигрировать его на Discourse, но при этом хотелось бы восстановить и те 1000 сообщений из форума на Discourse.
От форума Discourse у меня есть резервная копия, а для SMF создание резервной копии не составляет труда.
Миграция с SMF на Discourse, думаю, не должна быть проблемой, хотя я этого ещё не пробовал.
Признаюсь, что категории в обеих системах похожи, но есть и различия.
Возможно ли объединить оба форума в один?
Если да, то какой лучший способ это сделать?
Из SMF мне нужны только пользователи (они примерно те же в обоих форумах) и сообщения. В принципе, все сообщения из форума SMF можно импортировать в отдельную категорию, а затем я сам перемещу их в нужные категории (или просто оставлю там в качестве архива).
Мой план действий следующий:
Создам резервную копию текущего SMF, импортирую её во второй экземпляр SMF, перемещу все темы и сообщения туда в одну категорию, сделаю новую резервную копию для импорта в Discourse.
Верну «старый» форум Discourse в онлайн (с 1000 сообщениями или без них?).
Импортирую резервную копию из SMF.
Возникает вопрос: сработает ли это вообще, учитывая, что темы и сообщения имеют ID и временные метки из SMF, которые связаны с пользователями и т.д.
Честно говоря, я не знаю, как действовать и возможно ли это в принципе.
Уже ли скрипт адаптирован для SMF 2.1.x?
Не уверен, поддерживает ли Discourse нативное резервное копирование из SMF. Я знаю, что официальная команда Discourse может помочь с миграцией, но не знаю, сколько это стоит. В прошлом я использовал API Discourse для миграции больших объемов данных форума. Я создал категории на форуме Discourse. После этого написал Python-скрипт для парсинга старого форума и загрузки тем, пользователей и прочего в новый.
Что ж, у каждого из нас есть свои инструменты, но я обнаружил, что скрипт для слияния сайтов на Discourse упускает множество граничных случаев (сейчас я уже не совсем помню, какие именно). К тому же вам предстоит совершить два перехода.
Я бы, скорее всего, просто запустил скрипт для SMF поверх существующего сайта на Discourse. Когда я делал это раньше, я вносил небольшие правки, чтобы, например, категории объединялись, а пользователи синхронизировались между сайтами. Если вы немного разбираетесь в программировании, скрипты обычно достаточно просты для понимания, даже если вы не знаете Ruby.
На самом деле я ещё не начал.
Но мой вопрос был: 1. работает ли этот скрипт с SMF 2.1 и 2. возможно ли объединить SMF с существующим экземпляром Discourse.
Я совершенно упустил это. Спасибо за ответ. Думаю, именно так всё и должно работать.
@pfaffman
Мне не нужно всё из SMF, только сообщения, темы и пользователи.
Возможно, мне придётся повозиться, чтобы заставить это работать.