veza/veza-chat-server/docs/CHAT_DB_STRATEGY.md

1.3 KiB

Strategie de Base de Données pour Veza Chat Server

Isolation par Schema

Le veza-chat-server partage l'instance PostgreSQL veza_lab avec d'autres services (Backend API, Stream Server), mais utilise un schema dédié nommé chat.

Cette isolation permet de :

  1. Éviter les conflits de noms de tables (ex: users) avec le Backend API (schema public).
  2. Gérer des migrations SQLx indépendantes et spécifiques au Chat.
  3. Réinitialiser les données du Chat sans impacter le reste du système.

Configuration

Pour se connecter à la base de données du chat, l'URL de connexion (DSN) doit inclure l'option search_path=chat.

Exemple de DSN

export DATABASE_URL="postgres://user:pass@localhost:5432/veza_lab?sslmode=disable&options=-c%20search_path=chat"

Scripts Lab

Les scripts dans scripts/ configurent automatiquement cet environnement :

  • start_lab.sh : Démarre le serveur en configurant le schema chat.
  • reset_lab_db.sh : Supprime et recrée le schema chat, puis joue les migrations.

Migrations

Les migrations SQLx se trouvent dans migrations/. Elles s'appliquent uniquement au schema chat.

# Appliquer manuellement les migrations
export DATABASE_URL="..." # avec search_path=chat
sqlx migrate run