NOTLimai Docs
Base de donnée

PostgreSQL

Guide pour installer et lancer PostgreSQL avec Docker

Installation avec Docker

La méthode la plus simple pour lancer PostgreSQL est d'utiliser Docker avec un repository préconfiguré.

1. Cloner le repository

Clonez le repository Docker PostgreSQL générique :

git clone https://github.com/NOTLimai/postgres_generic_docker.git
cd postgres_generic_docker

2. Configuration

Modifiez le fichier .env ou docker-compose.yml selon vos besoins :

  • POSTGRES_USER : Utilisateur PostgreSQL
  • POSTGRES_PASSWORD : Mot de passe
  • POSTGRES_DB : Nom de la base de données
  • Port : Port d'exposition (par défaut 5432)

3. Lancer le conteneur

Démarrez PostgreSQL avec Docker Compose :

docker-compose up -d

4. Vérifier le statut

Vérifiez que le conteneur est en cours d'exécution :

docker-compose ps

5. Se connecter à PostgreSQL

Pour accéder au shell PostgreSQL :

docker-compose exec postgres psql -U postgres

Ou depuis votre application, utilisez les paramètres de connexion :

Host: localhost
Port: 5432
Database: votre_database
User: votre_user
Password: votre_password

6. Arrêter le conteneur

Pour arrêter PostgreSQL :

docker-compose down

Pour arrêter et supprimer les données :

docker-compose down -v

Installation locale (sans Docker)

Sur Ubuntu/Debian

sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql

Sur macOS

brew install postgresql
brew services start postgresql

Sur Windows

Téléchargez et installez PostgreSQL depuis le site officiel.

Commandes utiles

Gestion du service

# Démarrer PostgreSQL
sudo systemctl start postgresql

# Arrêter PostgreSQL
sudo systemctl stop postgresql

# Redémarrer PostgreSQL
sudo systemctl restart postgresql

# Statut de PostgreSQL
sudo systemctl status postgresql

Commandes PostgreSQL (psql)

-- Lister les bases de données
\l

-- Se connecter à une base de données
\c nom_database

-- Lister les tables
\dt

-- Lister les schémas
\dn

-- Créer une base de données
CREATE DATABASE nom_database;

-- Créer un utilisateur
CREATE USER username WITH PASSWORD 'password';

-- Donner tous les privilèges
GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

-- Quitter psql
\q

Commandes Shell

# Se connecter en tant qu'utilisateur postgres
sudo -u postgres psql

# Créer une base de données depuis le shell
createdb nom_database

# Supprimer une base de données
dropdb nom_database

# Sauvegarder une base de données
pg_dump nom_database > backup.sql

# Restaurer une base de données
psql nom_database < backup.sql

Problèmes courants

Port déjà utilisé

Si le port 5432 est déjà utilisé, modifiez le port dans docker-compose.yml :

ports:
  - "5433:5432"

Connexion refusée

Vérifiez que le conteneur est en cours d'exécution et que les credentials sont corrects.

Réinitialiser le mot de passe

Avec Docker :

docker-compose exec postgres psql -U postgres
ALTER USER postgres WITH PASSWORD 'nouveau_password';

Erreur d'authentification

Modifiez le fichier pg_hba.conf pour autoriser les connexions (avec Docker, c'est généralement déjà configuré).

Connection String

Format de la chaîne de connexion PostgreSQL :

postgresql://username:password@localhost:5432/database_name

Exemple pour différents frameworks :

# Django
DATABASE_URL=postgresql://user:password@localhost:5432/mydb

# Node.js (Prisma)
DATABASE_URL="postgresql://user:password@localhost:5432/mydb?schema=public"

# Laravel
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=mydb
DB_USERNAME=user
DB_PASSWORD=password