Skip to main content

Vues

Les vues sont des configurations enregistrées et nommées décrivant comment les enregistrements d'une table sont filtrés, triés, regroupés et projetés. Ajoutez-les sous le tableau views d'une table. Une vue fonctionne dans l'un de deux modes : mode config JSON (filtres/tris/champs/regroupement déclaratifs) ou mode SQL (une query PostgreSQL brute).

Propriétés des vues

Propriété Description
id Identifiant unique de la vue.
name Nom lisible de la vue.
isDefault Booléen. Lorsqu'il vaut true, la configuration de cette vue s'applique lorsqu'aucune vue spécifique n'est demandée.
filters Conditions de filtre (mode config JSON). Voir ci-dessous.
sorts Tableau de règles de tri { field, direction } (mode config JSON). direction vaut asc ou desc.
fields Tableau de noms de champs à inclure, dans l'ordre d'affichage (mode config JSON).
groupBy Configuration de regroupement { field, direction? } (mode config JSON).
query SQL brut pour une VIEW PostgreSQL (mode SQL). Lorsqu'elle est définie, les propriétés de config JSON ne sont pas utilisées.
materialized Booléen. Avec query, crée une MATERIALIZED VIEW qui met les résultats en cache. Mode SQL uniquement.
refreshOnMigration Booléen. Avec materialized, rafraîchit la vue matérialisée lors des migrations.

Mode config JSON

Déclaratif — filtrez, triez, regroupez et choisissez des colonnes sans écrire de SQL.

views:
  - id: active_high_priority
    name: Active — High Priority
    isDefault: true
    filters:
      and:
        - { field: status, operator: equals, value: active }
        - { field: priority, operator: equals, value: high }
    sorts:
      - { field: created_at, direction: desc }
    fields: [title, status, priority, assigned_to]
    groupBy: { field: status, direction: asc }

Filtres

Un filtre est soit une condition unique { field, operator, value }, soit un groupe booléen combinant des conditions avec and / or (pouvant s'imbriquer) :

filters:
  or:
    - { field: priority, operator: equals, value: high }
    - { field: priority, operator: equals, value: urgent }

Les opérateurs courants incluent equals, greaterThan, lessThan et des opérateurs de comparaison similaires. Voir Validation pour la façon dont les champs de filtre sont vérifiés par rapport à la table.

Mode SQL

Pour les rapports avancés, fournissez une query brute. Définissez materialized: true pour mettre les résultats en cache, et refreshOnMigration: true pour maintenir le cache à jour à travers les migrations de schéma.

views:
  - id: monthly_revenue
    name: Monthly Revenue
    query: >
      SELECT date_trunc('month', created_at) AS month, SUM(amount) AS revenue
      FROM orders GROUP BY 1 ORDER BY 1
    materialized: true
    refreshOnMigration: true