Files
LogiFlow/production-database-schema-export.txt
T
michaelschal 0949386425 Provide database schema details in a text file and via an API
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
2025-08-12 08:32:42 +00:00

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
===============================================