From aa494fd8e24b0aabcc890655370a15358f9e6755 Mon Sep 17 00:00:00 2001 From: ertopogo Date: Thu, 5 Feb 2026 23:48:50 +0100 Subject: WIP: prepare import csv --- POSTGRES_DIAG.md | 195 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 193 insertions(+), 2 deletions(-) (limited to 'POSTGRES_DIAG.md') diff --git a/POSTGRES_DIAG.md b/POSTGRES_DIAG.md index 8a07377..cb64048 100644 --- a/POSTGRES_DIAG.md +++ b/POSTGRES_DIAG.md @@ -2,6 +2,48 @@ Ce fichier regroupe les commandes essentielles pour diagnostiquer les problèmes de connexion, de droits et de performance sur PostgreSQL. +## 0. Diagnostic sur la machine hote (avant psql) + +### 0.1 Savoir si PostgreSQL est installe +```bash +psql --version +which psql +``` + +### 0.2 Savoir si PostgreSQL tourne (service ou processus) +```bash +sudo systemctl status postgresql +sudo service postgresql status +ps aux | grep -E "postgres|postmaster" +``` + +### 0.3 Savoir si c'est Docker ou installe localement +```bash +docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Ports}}" | grep -i postgres +``` + +### 0.4 Verifier le port d'ecoute (5432 par defaut) +```bash +ss -lntp | grep 5432 +netstat -lntp | grep 5432 +``` + +### 0.5 Localiser les fichiers de configuration sur la machine +```bash +# Si PostgreSQL tourne localement, ces commandes donnent les chemins exacts +sudo -u postgres psql -c "SHOW config_file;" +sudo -u postgres psql -c "SHOW hba_file;" +sudo -u postgres psql -c "SHOW data_directory;" +``` + +Chemins courants (selon distribution) : +```text +/etc/postgresql/*/main/postgresql.conf +/etc/postgresql/*/main/pg_hba.conf +/var/lib/pgsql/data/postgresql.conf +/var/lib/pgsql/data/pg_hba.conf +``` + ## 1. Connexion au serveur (Ligne de commande) Se connecter en tant que super-administrateur (localement) : @@ -56,7 +98,60 @@ FROM pg_stat_activity WHERE wait_event_type = 'Lock'; ``` -## 4. Gestion des Mots de Passe +## 4. Logs des Requêtes SQL (serveur PostgreSQL) + +Pour voir les requêtes exécutées, les logs sont **sur le serveur PostgreSQL** (pas sur la machine Medusa). + +### 4.1 Activer les logs de requêtes +Dans `postgresql.conf` : +```text +# Log complet (verbeux) +log_statement = 'all' + +# Option moins verbeuse : toutes les requêtes lentes +log_min_duration_statement = 0 +``` + +Recharger la configuration : +```sql +SELECT pg_reload_conf(); +``` + +### 4.2 Savoir où les logs sont écrits +```sql +SHOW log_directory; +SHOW log_filename; +SHOW logging_collector; +``` + +### 4.3 Requête utile (statistiques) +Si `pg_stat_statements` est activé : +```sql +SELECT query, calls, total_exec_time +FROM pg_stat_statements +ORDER BY total_exec_time DESC +LIMIT 20; +``` + +### 4.4 Voir les logs au niveau systeme +Sur le serveur PostgreSQL : +```bash +# Journal systemd (Debian/Ubuntu) +sudo journalctl -u postgresql -n 200 --no-pager + +# Suivre les logs en temps reel (systemd) +sudo journalctl -u postgresql -f +``` + +Si les logs sont ecrits dans des fichiers (selon config) : +```bash +# Chemin exact indique par SHOW log_directory / log_filename +sudo ls -lah /var/log/postgresql/ +sudo tail -n 200 /var/log/postgresql/postgresql-*.log +sudo tail -f /var/log/postgresql/postgresql-*.log +``` + +## 5. Gestion des Mots de Passe Si vous avez un doute sur un mot de passe ou une méthode de chiffrement (md5 vs scram), la meilleure solution est de le redéfinir : @@ -65,7 +160,7 @@ Si vous avez un doute sur un mot de passe ou une méthode de chiffrement (md5 vs ALTER USER nom_utilisateur WITH PASSWORD 'nouveau_mot_de_passe'; ``` -## 5. Problèmes Courants `pg_hba.conf` +## 6. Problèmes Courants `pg_hba.conf` Si vous avez l'erreur `no pg_hba.conf entry for host...`, vérifiez le fichier `pg_hba.conf`. @@ -79,3 +174,99 @@ Si vous avez l'erreur `no pg_hba.conf entry for host...`, vérifiez le fichier ` ```bash sudo systemctl reload postgresql ``` + +## 7. Medusa - Tables concernées par des actions courantes + +### 6.1 Création d'un compte client (storefront) +Tables généralement impactées : +- `customer` +- `customer_address` (si une adresse est fournie) +- `customer_group_customer` (si le client est rattaché à un groupe) + +Requêtes SQL utiles : +```sql +-- Voir les tables clientes disponibles +\dt customer* + +-- Consulter les derniers clients +SELECT id, email, created_at +FROM customer +ORDER BY created_at DESC +LIMIT 20; + +-- Adresses des clients (si table présente) +SELECT id, customer_id, address_1, city, country_code, created_at +FROM customer_address +ORDER BY created_at DESC +LIMIT 20; + +-- Appartenance a un groupe (si table presente) +SELECT customer_id, customer_group_id +FROM customer_group_customer +LIMIT 20; +``` + +### 6.2 Passage d'une commande +Tables généralement impactées : +- `cart` +- `line_item` (ou `cart_line_item` selon version) +- `order` +- `order_item` +- `payment` / `payment_session` +- `fulfillment` / `shipment` +- `address` (billing / shipping) + +Requêtes SQL utiles : +```sql +-- Derniers paniers +SELECT id, email, region_id, created_at, completed_at +FROM cart +ORDER BY created_at DESC +LIMIT 20; + +-- Lignes de panier / lignes de commande (selon version) +SELECT id, cart_id, order_id, title, quantity, unit_price, created_at +FROM line_item +ORDER BY created_at DESC +LIMIT 20; + +-- Dernieres commandes +SELECT id, status, fulfillment_status, payment_status, total, created_at +FROM "order" +ORDER BY created_at DESC +LIMIT 20; + +-- Details d'items de commande +SELECT id, order_id, title, quantity, unit_price, created_at +FROM order_item +ORDER BY created_at DESC +LIMIT 20; + +-- Paiements / sessions de paiement +SELECT id, order_id, provider_id, amount, created_at +FROM payment +ORDER BY created_at DESC +LIMIT 20; + +SELECT id, cart_id, provider_id, amount, status, created_at +FROM payment_session +ORDER BY created_at DESC +LIMIT 20; + +-- Fulfillment / shipments +SELECT id, order_id, status, created_at +FROM fulfillment +ORDER BY created_at DESC +LIMIT 20; + +SELECT id, fulfillment_id, tracking_number, created_at +FROM shipment +ORDER BY created_at DESC +LIMIT 20; + +-- Adresses de facturation / livraison +SELECT id, order_id, customer_id, address_1, city, country_code, created_at +FROM address +ORDER BY created_at DESC +LIMIT 20; +``` -- cgit v1.2.3