Уважаемые разработчики Discourse,
РЕ: rake posts:rebake (будущая функция)
rake posts:rebake # Обновить каждый пост последней разметкой Markdown
rake posts:rebake_match[pattern,type,delay] # Переработать все посты, соответствующие строке/регулярному выражению, и при желании задержать цикл
A. Было бы отлично иметь функцию переработки, позволяющую пользователю выполнять переработку только если идентификатор темы (или идентификатор поста) больше некоторого целого числа.
rake posts:rebake_incremental['topic_id', 34567] # Переработать, если topic_id >= 34567
rake posts:rebake_incremental['post_id', 364123] # Переработать, если post_id >= 364123
Причины:
(1) При переработке, особенно при выполнении задач миграции, разработчики могли уже мигрировать темы/посты; однако позже, когда они обновляют миграцию новыми постами (например, в активном форуме, когда миграция обновляется), нет способа (насколько мне известно) указать точку начала обработки. Сопоставление по шаблону для этого не предназначено (если только я не ошибаюсь).
(2) При тонкой настройке текста из старых форумов в Discourse в рамках задач миграции, например, при адаптации специальных символов из старого форума для работы с Markdown в форуме программирования или при настройке рекурсивных BB-кодов в устаревших форумах, полезно перерабатывать, например, последние 1000 постов (вместо всей базы данных).
B. Даже более гибко, чем вариант A (указание оператора сравнения)
rake posts:rebake_incremental['topic_id', '>=',34567] # Переработать, если topic_id >= 34567
rake posts:rebake_incremental['post_id','<', 364123] # Переработать, если post_id < 364123
Общий вид:
rake posts:rebake_incremental[target, operator, id]
Где:
- target — это либо topic_id, либо post_id
- operator — арифметический оператор сравнения
- id — целое число, либо topic_id, либо post_id
Примечание: Задачи миграции часто требуют множества итераций для достижения правильного результата, особенно в части текста и кодировки постов из исходного форума в Discourse. Существует множество символов, которые могут использоваться в форумах без Markdown, но при миграции в форум с обработкой Markdown вызывают проблемы. Наличие большего контроля над процессом переработки, как показано выше, помогло бы.