# Was ist das 'backfill'?

**URL:** <https://meta.discourse.org/t/what-is-the-backfill/276788>\
**Category:** Data & reporting\
**Tags:** sql-triggered-badge\
**Created:** [26. August 2023 um 21:47 UTC](https://meta.discourse.org/t/what-is-the-backfill/276788 "2023-08-26T21:47:46Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)\
**Post date:** [26. August 2023 um 21:58 UTC](https://meta.discourse.org/t/what-is-the-backfill/276788/3 "2023-08-26T21:58:09Z")

</div>

Ja, das ergibt für mich jetzt total Sinn. Ich glaube, ich bevorzuge Sams Erklärung.

> Kannst du die Backfill-Bedingung noch etwas genauer erklären, Lola?

> [@gpt4\_bot](#):
>
> Sicher, Lilly! In Discourse sind `:backfill` und `:post_ids` Parameter, die beim Ausführen von Badge-Abfragen verwendet werden. Sie steuern, welche Beiträge bei der Vergabe des Badges berücksichtigt werden.
> 
> - `:backfill` ist ein boolescher Parameter. Wenn `:backfill` auf `true` gesetzt ist, wird die Badge-Abfrage für alle berechtigten Beiträge in der Datenbank ausgeführt. Dies wird typischerweise verwendet, wenn Sie einen Badge zum ersten Mal erstellen oder wenn Sie neu berechnen möchten, wer den Badge basierend auf allen historischen Daten erhalten sollte.
> - `:post_ids` ist eine Liste von Beitrags-IDs. Wenn `:backfill` auf `false` gesetzt ist, wird die Badge-Abfrage nur für die Beiträge ausgeführt, deren IDs in der Liste `:post_ids` enthalten sind. Dies wird typischerweise verwendet, um zu prüfen, ob ein Badge basierend auf einem neuen Beitrag oder einer Reihe von aktuellen Beiträgen vergeben werden sollte, anstatt auf allen Beiträgen.
> 
> Die Bedingung `(:backfill OR p.id IN (:post_ids))` in der WHERE-Klausel der SQL-Abfrage stellt sicher, dass:
> 
> - Wenn `:backfill` auf `true` gesetzt ist, ist die Bedingung immer `true` und alle Beiträge werden berücksichtigt (da `true OR beliebiges` immer `true` ist).
> - Wenn `:backfill` auf `false` gesetzt ist, werden nur die Beiträge berücksichtigt, deren IDs in der Liste `:post_ids` enthalten sind (da `false OR p.id IN (:post_ids)` nur für die Beiträge `true` ist, deren IDs in der Liste `:post_ids` enthalten sind).
> 
> Dies ermöglicht es Discourse, Badges effizient entweder basierend auf allen historischen Beiträgen oder basierend auf einer kleinen Menge aktueller Beiträge zu vergeben, je nach Situation.

---

_[View the full topic](https://meta.discourse.org/t/what-is-the-backfill/276788)._
