# 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 ```bash 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`. ```bash # Appliquer manuellement les migrations export DATABASE_URL="..." # avec search_path=chat sqlx migrate run ```