Database
Database Overview
Vue d'ensemble de la base de données
La plateforme utilise PostgreSQL pour stocker les documents, annotations, configurations et statistiques.
Choix techniques (Base de données)
- PostgreSQL: robustesse, transactions, contraintes riches et extensions (JSONB, Full-Text, GIN/GIST).
- Drizzle ORM: schémas typés, migrations explicites, DX lisible.
Périmètre et responsabilités
- Auth: utilisateurs, sessions, tokens (
apps/server/src/db/schema/auth.ts). - Documents: fichiers, chunks, Q&A pairs, assignations, historique des modifications (
apps/server/src/db/schema/naivi.ts). - Tags & Rôles applicatifs: filtrage contextuel du contenu RAG par rôle d'utilisateur.
- Index FAISS persistés: les index FAISS sont sérialisés et stockés en DB (table
indexes), un par rôle applicatif. Le chatbot les charge depuis la DB au démarrage (pas de recalcul complet à chaque redémarrage).
Utilisation et intégration
- Schémas: modifiez
apps/server/src/db/schema/*.ts(auth/naivi). - Connexion: via
apps/server/src/db/index.ts. - Migrations: configuration Drizzle dans
apps/server/src/drizzle.config.ts(générez et appliquez selon votre flux CI/CD). - Accès applicatif: utilisez Drizzle dans les handlers ORPC (
apps/server/src/routers/*.ts).
Personnalisation
- Indexation: ajoutez des indexes (B-Tree, GIN) pour vos requêtes fréquentes (recherches par nom, dates, relations).
- Intégrité: définissez clés étrangères, contraintes
CHECK,UNIQUEpour garantir la qualité des données. - Gouvernance: chiffrement au repos côté cluster, rétention/archivage, sauvegardes/restores testés.
- Environnements: bases séparées par environnement; appliquez les migrations et jeux de données init par env.
- Observabilité: activez les logs de requêtes lentes et les métriques (pg_stat_statements).
Kalli