Skip to content

Base de données

Trois BDD indépendantes, aucune jointure cross-plateforme. La synchronisation passe exclusivement par RabbitMQ.

Chantier : ORM et stratégie de migration

Statut : stable Périmètre : transverse

  • A1Connect : Prisma 5 — schéma unique dans libs/common/prisma/schema.prisma, migrations via prisma migrate dev dans le container api
  • Dema1n : TypeORM — migrationsRun: true dans la config, les migrations s'appliquent au démarrage du container
  • Inspire-v2 : TypeORM — migrations manuelles (yarn migration:run)

Chantier : Cohérence cross-plateforme

Statut : stable Périmètre : transverse

  • La clé de jointure inter-plateformes est l'email (pas un ID partagé)
  • Chaque plateforme maintient sa propre table user avec les champs dont elle a besoin
  • Les mises à jour de profil (user___updated) sont publiées par la plateforme source, consommées par les autres pour mise à jour locale

Chantier : Spécificités Dema1n

Statut : stable Périmètre : dema1n

  • MySQL avec charset utf8mb4_general_ci — attention aux comparaisons de chaînes case-insensitive
  • Redis utilisé pour les sessions et le cache (pas documenté en détail — à compléter)

Chantier : Spécificités Inspire-v2

Statut : stable Périmètre : inspire-v2

  • PostgreSQL avec SSL optionnel via DB_SSLCERT
  • Elasticsearch en parallèle pour la recherche full-text (les données sont indexées, pas requêtées via PG pour la recherche)
  • MinIO pour les assets binaires (images, vidéos via Mux)