From a749f7fcffe1a5c3361e251dd82c05d97aa1fd7a Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Thu, 21 Aug 2025 10:02:57 +0200 Subject: [PATCH] feat: add Adminer support for PostgreSQL management - Updated DATABASE_SETUP.md to include instructions for starting Adminer alongside PostgreSQL. - Enhanced Docker Compose configuration to add Adminer service for database management. - Provided connection details and usage instructions for Adminer in the documentation. - Updated commands for restarting services and viewing logs to include Adminer. --- DATABASE_SETUP.md | 68 ++++++++++++++++++++++++++++++++++++++-------- docker-compose.yml | 12 ++++++++ 2 files changed, 68 insertions(+), 12 deletions(-) diff --git a/DATABASE_SETUP.md b/DATABASE_SETUP.md index a2742a8..6d76db9 100644 --- a/DATABASE_SETUP.md +++ b/DATABASE_SETUP.md @@ -27,13 +27,37 @@ NEXT_PUBLIC_API_URL= ### 3. Démarrage de PostgreSQL avec Docker ```bash -# Démarrer la base de données -docker-compose up -d postgres +# Démarrer la base de données et l'interface d'administration +docker compose up -d postgres adminer -# Vérifier que la base est bien démarrée -docker-compose ps +# Ou démarrer tous les services +docker compose up -d + +# Vérifier que les services sont démarrés +docker compose ps ``` +### Interface d'administration (Adminer) + +Une fois PostgreSQL démarré, tu peux accéder à l'interface web sur : + +**🌐 http://localhost:8080** + +**Paramètres de connexion :** + +- **Système** : PostgreSQL +- **Serveur** : postgres +- **Utilisateur** : peakskills_user +- **Mot de passe** : peakskills_password +- **Base de données** : peakskills + +L'interface Adminer te permet de : + +- 📊 Visualiser les tables et données +- 🔍 Exécuter des requêtes SQL +- 📈 Voir les relations entre tables +- 📋 Exporter/importer des données + ### 4. Démarrage de l'application ```bash @@ -88,18 +112,38 @@ Les données sont maintenant persistées en base PostgreSQL au lieu du localStor ## Commandes utiles ```bash -# Redémarrer la base de données -docker-compose restart postgres +# Redémarrer les services +docker compose restart postgres adminer -# Voir les logs de la base -docker-compose logs postgres +# Voir les logs +docker compose logs postgres +docker compose logs adminer -# Se connecter à la base -docker-compose exec postgres psql -U peakskills_user -d peakskills +# Se connecter à la base en ligne de commande +docker compose exec postgres psql -U peakskills_user -d peakskills # Arrêter tous les services -docker-compose down +docker compose down # Arrêter et supprimer les volumes (reset complet) -docker-compose down -v +docker compose down -v + +# Démarrer uniquement PostgreSQL (sans Adminer) +docker compose up -d postgres + +# Démarrer uniquement Adminer (si PostgreSQL tourne déjà) +docker compose up -d adminer +``` + +## Migration des données + +Une fois PostgreSQL démarré, tu peux migrer les données : + +```bash +# Migrer les skills depuis JSON vers PostgreSQL +curl -X POST http://localhost:3000/api/skills/migrate + +# Vérifier dans Adminer : http://localhost:8080 +# Ou en ligne de commande : +docker compose exec postgres psql -U peakskills_user -d peakskills -c "SELECT COUNT(*) FROM skills;" ``` diff --git a/docker-compose.yml b/docker-compose.yml index 4b2d42a..b8d84a1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,5 +18,17 @@ services: timeout: 5s retries: 5 + # Adminer - Interface web pour PostgreSQL + adminer: + image: adminer:4.8.1 + restart: always + ports: + - "8080:8080" + environment: + ADMINER_DEFAULT_SERVER: postgres + ADMINER_DESIGN: pepa-linha-dark + depends_on: + - postgres + volumes: postgres_data: