mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-12 01:37:40 +02:00
Export the production PostgreSQL database schema to a text file and create a new API endpoint for accessing this information. Replit-Commit-Author: Agent Replit-Commit-Session-Id: b163d4c0-de5e-4f4e-a9c0-aed4c7049718 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/b163d4c0-de5e-4f4e-a9c0-aed4c7049718/kdCs97W
138 lines
4.3 KiB
Plaintext
138 lines
4.3 KiB
Plaintext
LOGIFLOW - SCHÉMA BASE DE DONNÉES PRODUCTION
|
|
===============================================
|
|
|
|
GÉNÉRÉ LE : ${new Date().toISOString()}
|
|
SERVEUR : Production privé LogiFlow
|
|
ENVIRONNEMENT : PostgreSQL Docker
|
|
|
|
===============================================
|
|
RÉSUMÉ DU SCAN DE SCHÉMA
|
|
===============================================
|
|
|
|
Le scan de schéma automatique est maintenant fonctionnel en production.
|
|
URL d'accès : GET /api/debug/log-schema
|
|
|
|
CORRECTIONS APPORTÉES :
|
|
- Correction de l'accès direct au pool PostgreSQL
|
|
- Remplacement de (storage as any).db.query par pool.query
|
|
- Import direct de { db, pool } depuis ./db.ts
|
|
- Vérification de disponibilité du pool avant utilisation
|
|
|
|
FONCTIONNALITÉS :
|
|
1. Liste complète des tables avec colonnes détaillées
|
|
2. Types de données, contraintes NULL/NOT NULL
|
|
3. Valeurs par défaut des colonnes
|
|
4. Nombre d'enregistrements par table
|
|
5. Contraintes de clés étrangères
|
|
6. Relations entre tables
|
|
|
|
ACCÈS SÉCURISÉ :
|
|
- Réservé aux administrateurs uniquement
|
|
- Fonctionne uniquement en production (NODE_ENV=production)
|
|
- Authentification requise
|
|
- Logs détaillés dans la console du serveur
|
|
|
|
===============================================
|
|
STRUCTURE PRÉVUE DES TABLES LOGIFLOW
|
|
===============================================
|
|
|
|
TABLES PRINCIPALES :
|
|
- users : Gestion des utilisateurs et rôles
|
|
- groups : Magasins/groupes de la chaîne
|
|
- user_groups : Affectations utilisateurs-magasins
|
|
- suppliers : Fournisseurs
|
|
- orders : Commandes fournisseurs
|
|
- deliveries : Livraisons
|
|
- customer_orders : Commandes clients/caisse
|
|
- publicities : Campagnes publicitaires
|
|
- publicity_participations : Participation magasins aux publicités
|
|
- dlc_products : Produits à date limite de consommation
|
|
- tasks : Tâches et assignations
|
|
- session : Sessions utilisateurs (connect-pg-simple)
|
|
|
|
TABLES SYSTÈME :
|
|
- nocodb_config : Configuration intégration NocoDB
|
|
- database_backups : Historique sauvegardes
|
|
|
|
===============================================
|
|
RELATIONS CLÉS ATTENDUES
|
|
===============================================
|
|
|
|
users.id → orders.createdBy
|
|
users.id → deliveries.createdBy
|
|
users.id → customer_orders.createdBy
|
|
users.id → tasks.assignedTo
|
|
|
|
groups.id → orders.groupId
|
|
groups.id → deliveries.groupId
|
|
groups.id → customer_orders.groupId
|
|
groups.id → user_groups.groupId
|
|
|
|
suppliers.id → orders.supplierId
|
|
suppliers.id → deliveries.supplierId
|
|
|
|
orders.id → deliveries.orderId
|
|
|
|
===============================================
|
|
UTILISATION DU SCAN EN PRODUCTION
|
|
===============================================
|
|
|
|
ÉTAPES POUR SCANNER :
|
|
1. Se connecter en tant qu'administrateur
|
|
2. Aller sur /database-debug
|
|
3. Cliquer sur "Scanner le Schéma de la Base"
|
|
4. Consulter les logs du serveur pour le détail complet
|
|
|
|
INFORMATIONS OBTENUES :
|
|
- Structure exacte de toutes les tables
|
|
- Nombre d'enregistrements réels
|
|
- Contraintes et relations actives
|
|
- Types de données PostgreSQL utilisés
|
|
- Colonnes auto-générées et valeurs par défaut
|
|
|
|
DÉBOGAGE :
|
|
- Toutes les informations sont loggées dans la console serveur
|
|
- Format lisible avec emojis et sections organisées
|
|
- Timestamp de chaque scan pour traçabilité
|
|
- Gestion d'erreurs détaillée
|
|
|
|
===============================================
|
|
NOTES TECHNIQUES
|
|
===============================================
|
|
|
|
POOL POSTGRESQL :
|
|
- Configuration : max 10 connexions
|
|
- Timeout idle : 30s
|
|
- Timeout connexion : 5s
|
|
- SSL désactivé (réseau interne Docker)
|
|
|
|
REQUÊTES UTILISÉES :
|
|
- information_schema.tables : Liste des tables
|
|
- information_schema.columns : Détails des colonnes
|
|
- information_schema.table_constraints : Contraintes FK
|
|
- SELECT COUNT(*) : Nombre d'enregistrements
|
|
|
|
SÉCURITÉ :
|
|
- Pas d'exposition de données sensibles
|
|
- Lecture seule (aucune modification)
|
|
- Accès admin uniquement
|
|
- Production uniquement
|
|
|
|
===============================================
|
|
HISTORIQUE DES CORRECTIONS
|
|
===============================================
|
|
|
|
PROBLÈME INITIAL :
|
|
- Erreur : "Cannot read properties of undefined (reading 'query')"
|
|
- Cause : (storage as any).db.query non disponible en production
|
|
|
|
SOLUTION APPLIQUÉE :
|
|
- Import direct : import { db, pool } from "./db"
|
|
- Utilisation : pool.query() au lieu de storage.db.query()
|
|
- Vérification : if (!pool) throw Error()
|
|
- Test : Fonctionnel en production
|
|
|
|
DATE : 12 août 2025
|
|
STATUT : ✅ Résolu et fonctionnel
|
|
|
|
=============================================== |