Liebe Discourse-Entwickler,
Betreff: rake posts:rebake (zukünftiges Feature)
rake posts:rebake # Aktualisiert jeden Beitrag mit dem neuesten Markdown
rake posts:rebake_match[pattern,type,delay] # Neubearbeitet alle Beiträge, die dem String/Regex entsprechen, und verzögert optional die Schleife
A. Es wäre großartig, eine Funktion für die Neubearbeitung zu haben, die es dem Benutzer ermöglicht, nur dann neu zu bearbeiten, wenn die Themen-ID (oder Beitrags-ID) größer als eine bestimmte ganze Zahl ist.
rake posts:rebake_incremental['topic_id', 34567] # Neubearbeitung, wenn topic_id >= 34567
rake posts:rebake_incremental['post_id', 364123] # Neubearbeitung, wenn post_id >= 364123
Gründe:
(1) Beim Neubearbeiten, insbesondere bei Migrationsaufgaben, haben Entwickler Themen/Beiträge möglicherweise bereits migriert. Wenn sie später die Migration mit neuen Beiträgen aktualisieren (z. B. in einem aktiven Forum, wenn die Migration aktualisiert wird), gibt es keine Möglichkeit (soweit mir bekannt), den Startpunkt beim Neubearbeiten anzugeben. Das Muster-Matching ist dafür nicht ausgelegt (sofern ich mich nicht irre).
(2) Bei der Feinabstimmung von Texten aus alten Foren für Discourse im Rahmen von Migrationsaufgaben, z. B. die Anpassung spezieller Zeichen aus alten Foren, damit sie mit Markdown in einem Programmierforum funktionieren, oder die Feinabstimmung rekursiver BBCode-Zeichenketten in Legacy-Foren, ist es sinnvoll, beispielsweise die letzten 1000 Beiträge neu zu bearbeiten (anstatt die gesamte Datenbank).
B. Noch flexibler als A (Angeben eines Vergleichsoperators)
rake posts:rebake_incremental['topic_id', '>=',34567] # Neubearbeitung, wenn topic_id >= 34567
rake posts:rebake_incremental['post_id','<' , 364123] # Neubearbeitung, wenn post_id < 364123
Allgemein:
rake posts:rebake_incremental[target, operator, id]
Wobei:
- target entweder die topic_id oder die post_id ist
- operator ein arithmetischer Vergleichsoperator ist
- id eine ganze Zahl ist, entweder topic_id oder post_id
Hinweis: Migrationsaufgaben erfordern oft viele Iterationen, um sie richtig zu gestalten; insbesondere bei Text und Kodierung von Beiträgen aus dem ursprünglichen Forum für Discourse. Es gibt viele Zeichen, die in nicht auf Markdown basierenden Foren verwendet werden können, die bei der Migration zu einem mit Markdown verarbeiteten Forum Probleme verursachen. Eine bessere Kontrolle über den Neubearbeitungsprozess, wie oben dargestellt, würde helfen.