diff options
| author | ertopogo <erwin.t.pombett@gmail.com> | 2026-02-05 23:48:50 +0100 |
|---|---|---|
| committer | ertopogo <erwin.t.pombett@gmail.com> | 2026-02-05 23:48:50 +0100 |
| commit | aa494fd8e24b0aabcc890655370a15358f9e6755 (patch) | |
| tree | 2eaf2d2c01624e8af6ede0faaef1cf3a0366f2b0 /POSTGRES_DIAG.md | |
| parent | 9ca55d25b61bad0b9d875e78567adf6739f62937 (diff) | |
WIP: prepare import csvdevelop
Diffstat (limited to 'POSTGRES_DIAG.md')
| -rw-r--r-- | POSTGRES_DIAG.md | 195 |
1 files changed, 193 insertions, 2 deletions
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;
+```
|
