Skip to content

📚 Module d'apprentissage SQL avec PostgreSQL - Support de formation CODA Dijon (Docker ready, données de test incluses)

Notifications You must be signed in to change notification settings

lgauthier1/coda-module-sql

Repository files navigation

Cours PostgreSQL - Module SQL

Pré-requis

1. Terminal

Assurez-vous d'avoir accès à un terminal :

  • macOS : Terminal (prĂ©-installĂ©) ou iTerm2
  • Windows : PowerShell, Git Bash, ou Windows Terminal
  • Linux : Terminal de votre distribution

2. Git

Git doit être installé sur votre machine :

  • macOS :

    # Vérifier si Git est installé
    git --version
    
    # Si non installé, installer via Homebrew
    brew install git
  • Windows : TĂ©lĂ©chargez et installez Git pour Windows

  • Linux :

    # Debian/Ubuntu
    sudo apt-get install git
    
    # Fedora
    sudo dnf install git

Vérifiez l'installation :

git --version

3. Cloner ce repository

git clone git@github.com:lgauthier1/coda-module-sql.git
cd coda-module-sql

Si vous n'avez pas encore configuré le remote :

git remote add origin git@github.com:lgauthier1/coda-module-sql.git

4. Installer Docker

Assurez-vous d'avoir Docker installé sur votre machine :

Vérifiez l'installation :

docker --version
docker-compose --version

5. Client PostgreSQL

Option 1 : pgAdmin via Docker (recommandé)

pgAdmin est disponible via un docker-compose séparé. Il sera accessible automatiquement après le démarrage.

📖 Guide complet : Consultez le fichier README-pgadmin.md pour un guide détaillé d'utilisation de pgAdmin avec Docker.

⚠️ En cas de problème avec pgAdmin : Utilisez le fichier docker-compose.yml (sans pgAdmin) et installez un client externe (voir Option 2).

Option 2 : Clients externes (alternative)

Si vous préférez installer un client localement ou en cas de problème avec pgAdmin Docker :

Démarrage de la base de données

Option 1 : PostgreSQL seul (recommandé si problème avec pgAdmin)

docker-compose up -d

Option 2 : PostgreSQL + pgAdmin

docker-compose -f docker-compose-pgadmin.yml up -d

💡 Note : Si vous rencontrez des problèmes avec pgAdmin, utilisez l'Option 1 et installez un client externe (voir section 5).

Initialiser le schéma et les données

Les scripts doivent être exécutés manuellement après le premier démarrage :

# 1. Créer le schéma et les tables
docker-compose exec -T postgres psql -U codaSchoolUser -d codaSchool < scripts/init-schema.sql

# Vérifier que les tables ont été créées
docker-compose exec postgres psql -U codaSchoolUser -d codaSchool -c "SELECT tablename FROM pg_tables WHERE schemaname = 'student';"

# 2. Charger les données de test
docker-compose exec -T postgres psql -U codaSchoolUser -d codaSchool < scripts/seed-data.sql

# Vérifier que les données ont été insérées
docker-compose exec postgres psql -U codaSchoolUser -d codaSchool -c "SET search_path TO student; SELECT COUNT(*) FROM etudiant; SELECT COUNT(*) FROM cours; SELECT COUNT(*) FROM inscription; SELECT COUNT(*) FROM note;"

La base de données sera accessible avec les paramètres suivants :

  • Host : localhost
  • Port : 5432
  • Database : codaSchool
  • Username : codaSchoolUser
  • Password : verySecretAndSecurePassword

Vérifier que le conteneur fonctionne

docker-compose ps

Arrêter la base de données

docker-compose down

Arrêter et supprimer les données

docker-compose down -v

Connexion avec pgAdmin

Si vous utilisez docker-compose-pgadmin.yml

pgAdmin est accessible sur le port 5050

  1. Accédez à pgAdmin via votre navigateur :

    http://localhost:5050
    
  2. Première connexion à pgAdmin :

    • Email : admin@coda-school.com
    • Password : admin
    • Cliquez sur "Login"
  3. Ajouter le serveur PostgreSQL :

    • Cliquez sur "Add New Server" (ou clic droit sur "Servers" → "Register" → "Server")
  4. Onglet "General" :

    • Name : Coda School
  5. Onglet "Connection" :

    • Host name/address : postgres (nom du service dans docker-compose, pas localhost)
    • Port : 5432
    • Maintenance database : codaSchool
    • Username : codaSchoolUser
    • Password : verySecretAndSecurePassword
    • âś… Cochez "Save password" (optionnel mais pratique)
  6. Cliquez sur "Save"

💡 Important : Utilisez postgres comme host (pas localhost) car pgAdmin et PostgreSQL sont dans le même réseau Docker.

Si vous utilisez un client externe (pgAdmin, DBeaver, etc.)

  1. Ouvrez votre client PostgreSQL
  2. Créez une nouvelle connexion
  3. Paramètres de connexion :
    • Host : localhost
    • Port : 5432
    • Database : codaSchool
    • Username : codaSchoolUser
    • Password : verySecretAndSecurePassword
  4. Connectez-vous

Commandes utiles

Se connecter via psql (ligne de commande)

docker-compose exec postgres psql -U codaSchoolUser -d codaSchool

Une fois connecté, utilisez le schéma student :

SET search_path TO student;
\dt

Réinitialiser les données

Pour vider et recréer les données :

# Supprimer le schéma et toutes ses tables
docker-compose exec postgres psql -U codaSchoolUser -d codaSchool -c "DROP SCHEMA IF EXISTS student CASCADE;"

# Recréer le schéma et les données
docker-compose exec -T postgres psql -U codaSchoolUser -d codaSchool < scripts/init-schema.sql
docker-compose exec -T postgres psql -U codaSchoolUser -d codaSchool < scripts/seed-data.sql

Voir les logs

docker-compose logs -f postgres

Redémarrer la base de données

docker-compose restart

Réinitialiser complètement la base de données

Pour recréer la base avec les scripts d'initialisation :

docker-compose down -v
docker-compose up -d

Structure de la base de données

Le schéma student comprend les tables suivantes :

  • student.etablissement : Établissements d'enseignement
  • student.etudiant : Étudiants inscrits dans les Ă©tablissements (2000 Ă©tudiants)
  • student.cours : Cours disponibles (100 cours)
  • student.inscription : Table de liaison entre Ă©tudiants et cours (1000 inscriptions)
  • student.note : Notes obtenues par les Ă©tudiants pour chaque cours (1000 notes)

Diagramme des relations

etablissement (1) ----< (N) etudiant
                            |
                            | (N)
                            |
                        inscription
                            |
                            | (N)
                            |
cours (1) ----< (N) inscription
cours (1) ----< (N) note >---- (N) etudiant

About

📚 Module d'apprentissage SQL avec PostgreSQL - Support de formation CODA Dijon (Docker ready, données de test incluses)

Topics

Resources

Stars

Watchers

Forks

Languages