Base de données + intégration dans l'API #2

Closed
opened 2026-05-23 18:16:57 +00:00 by RiasGFirst · 0 comments
Owner

Description : Mise en place de la couche de données (PostgreSQL) et création du premier modèle utilisateur.

Tâches

  • Ajouter un service PostgreSQL dans un fichier docker-compose.yml à la racine.
  • Installer et configurer l'ORM (Sequelize).
  • Définir le modèle User dans src/models avec les champs : uuid(UUID), nom (String), email (String, unique).
  • Configurer le script d'initialisation pour synchroniser les modèles avec la base au lancement de l'application.

Validations

  • Conteneur opérationnel : La commande docker ps montre un conteneur PostgreSQL en cours d'exécution.
  • Connexion API : Les logs au démarrage de l'API affichent "Database connected successfully".
  • Schéma Réel : En se connectant à la base (via un outil comme Adminer ou en ligne de commande), la table Users est visible avec les colonnes uuid, nom, et email.
  • Contrainte d'unicité : Une tentative d'insertion de deux utilisateurs avec le même email via l'ORM renvoie une erreur de contrainte.

Test

  • Route POST qui crée un User en double (dois réussir puis échoué)
**Description** : Mise en place de la couche de données (PostgreSQL) et création du premier modèle utilisateur. ## Tâches * [x] Ajouter un service PostgreSQL dans un fichier `docker-compose.yml` à la racine. * [x] Installer et configurer l'ORM (Sequelize). * [x] Définir le modèle `User` dans `src/models` avec les champs : `uuid`(UUID), `nom` (String), `email` (String, unique). * [x] Configurer le script d'initialisation pour synchroniser les modèles avec la base au lancement de l'application. ## Validations * [x] Conteneur opérationnel : La commande `docker ps` montre un conteneur PostgreSQL en cours d'exécution. * [x] Connexion API : Les logs au démarrage de l'API affichent "Database connected successfully". * [x] Schéma Réel : En se connectant à la base (via un outil comme Adminer ou en ligne de commande), la table `Users` est visible avec les colonnes `uuid`, `nom`, et `email`. * [x] Contrainte d'unicité : Une tentative d'insertion de deux utilisateurs avec le même email via l'ORM renvoie une erreur de contrainte. ## Test * [x] Route POST qui crée un User en double (dois réussir puis échoué)
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
RiasNetwork/riasbudget#2
No description provided.