Prezados Desenvolvedores do Discourse,
RE: rake posts:rebake (recurso futuro)
rake posts:rebake # Atualiza cada post com a última versão do markdown
rake posts:rebake_match[pattern,type,delay] # Rebake de todos os posts que correspondem à string/regex e, opcionalmente, atrasa o loop
A. Seria ótimo ter um recurso de rebake que permita ao usuário executar o rebake apenas se o ID do tópico (ou ID do post) for maior que um determinado número inteiro.
rake posts:rebake_incremental['topic_id', 34567] # Executa o rebake se topic_id >= 34567
rake posts:rebake_incremental['post_id', 364123] # Executa o rebake se post_id >= 364123
Motivos:
(1) Ao realizar o rebake, especialmente durante tarefas de migração, os desenvolvedores podem já ter migrado tópicos/posts; mas, mais tarde, ao atualizar a migração com novos posts (por exemplo, em um fórum ativo, quando a migração é atualizada), não há como (que eu saiba) especificar o ponto de partida no processo de renderização. A correspondência de padrões não foi projetada para isso (a menos que eu esteja entendendo mal).
(2) Ao trabalhar no ajuste fino de textos de fóruns antigos para o Discourse em tarefas de migração, por exemplo, ajustando caracteres especiais de fóruns antigos para funcionarem com markdown em um fórum de programação, ou ajustando bbcode recursivo em fóruns legados, é útil executar o rebake, por exemplo, nos últimos 1000 posts (em vez de todo o banco de dados).
B. Ainda mais flexível que A (especificar um operador de comparação)
rake posts:rebake_incremental['topic_id', '>=', 34567] # Executa o rebake se topic_id >= 34567
rake posts:rebake_incremental['post_id', '<', 364123] # Executa o rebake se post_id < 364123
Genérico:
rake posts:rebake_incremental[target, operator, id]
Onde:
- target é either o topic_id ou o post_id
- operator é um operador de comparação aritmética
- id é um número inteiro, seja topic_id ou post_id
Nota: Tarefas de migração frequentemente exigem muitas iterações para serem feitas corretamente; especialmente no que diz respeito ao texto e à codificação dos posts do fórum original para o Discourse. Existem muitos caracteres que podem ser usados em fóruns baseados em não-markdown e que, ao serem migrados para um fórum processado com markdown, causam problemas. Ter mais controle sobre o processo de rebake, conforme ilustrado, ajudaria.