Как использовать API для переноса темы с discourse1.com на discourse2.com

Всем привет,
У меня есть два форума: discourse1.com и discourse2.com.
Например, на discourse1.com у меня 3000 тем. Я хочу использовать API, чтобы перенести эти 3000 тем с discourse1.com на discourse2.com.

Может ли кто-нибудь подсказать код?
Спасибо!

1 лайк

Возможно, вас интересует экспорт/импорт тем и категорий. API не самый подходящий способ для этого.

1 лайк

Спасибо, @pfaffman,

Вы можете уточнить:

Если на discourse2.com уже есть 7000 тем, то при переносе 3000 тем с discourse1.com на discourse2.com существующие 7000 тем на discourse2.com не будут удалены?
Тогда на discourse2.com станет 7000 + 3000 = 10 000 тем?
Я беспокоюсь, что мои 7000 тем на discourse2.com будут удалены.

В идеале именно это должно произойти после успешного импорта.

Рекомендуется сделать резервные копии как Discourse 1, так и Discourse 2 перед началом импорта/экспорта на случай, если что-то пойдет не так.

2 лайка

Спасибо, я попробую реализовать.

Я попробовал переключить, но после этого onebox наших тем исчез.

Есть ли другой способ предотвратить потерю onebox?
Например, как насчет использования API?

Если вы хотите перенести темы с одного форума на другой, то сценарий, который я предложил, — это правильный способ.

Я не понимаю, что это значит. Что именно вы переключали?

Вы имеете в виду, что использовали этот скрипт, и при импорте тем в результатах не отображались onebox? Возвращаются ли они, если зайти в настройки (ключ) и пересобрать HTML? Если да, то вы можете либо пересобрать сообщения через командную строку, либо, как я подозреваю, просто подождать.

Мой результат такой же, как на изображении: onebox в темах отсутствует.
Поэтому я подумал об использовании API, но тоже не уверен: сохранит ли метод API onebox.

До:

После:

Это нормально, нужно выполнить перепроцессирование (rebake), посты будут обработаны, и будут сгенерированы oneboxes:

cd /var/discourse
./launcher enter app
rake posts:rebake

Спасибо, @Steven,

Я всё ещё рассчитываю на возможность использования API,
поскольку команда rake posts:rebake приведёт к пересборке и других наших тем.
По ряду причин нам очень сложно принимать решение о пересборке.

Вы можете вручную пересобрать каждый пост, нажав на , затем на значок гаечного ключа, чтобы открыть несколько опций, и выбрав «Пересобрать HTML».

Это снова обработает onebox.

1 лайк

Спасибо большое,
однако у нас много тем, и если делать это вручную, не хватит ни времени, ни средств.

Надеюсь, кто-нибудь сможет подсказать, как использовать API, не отключая onebox.