Files
LogiFlow/scripts/verify-dlc-migration.sh
T
michaelschal 785105814a Add stock depletion tracking for products
Introduce new columns to the products table to track stock depletion status, including who depleted it and when. This enhances product management by distinguishing between expired and out-of-stock items. This change includes database migrations, Docker updates, and deployment scripts to ensure a smooth rollout.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: f9197b9b-a5b3-4469-a27d-930a9e9ee736
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/f9197b9b-a5b3-4469-a27d-930a9e9ee736/JKfj3tT
2025-08-18 09:29:31 +00:00

111 lines
4.0 KiB
Bash
Executable File

#!/bin/bash
# Script de vérification de la migration DLC stock épuisé
# Auteur: Système de gestion automatisé
# Date: 2025-08-18
set -e
echo "🔍 [VERIFY] Vérification de la migration DLC stock épuisé..."
# Charger la configuration de la base de données
if [ -f ".env.production" ]; then
source .env.production
echo "✅ [VERIFY] Configuration production chargée"
else
echo "⚠️ [VERIFY] Fichier .env.production non trouvé, utilisation des variables d'environnement"
fi
# Construire l'URL de connexion si nécessaire
if [ -z "$DATABASE_URL" ]; then
if [ -n "$POSTGRES_USER" ] && [ -n "$POSTGRES_PASSWORD" ] && [ -n "$POSTGRES_DB" ]; then
export DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@logiflow-db:5432/${POSTGRES_DB}"
echo "🔧 [VERIFY] URL de base de données construite à partir des variables"
else
echo "❌ [VERIFY] Impossible de construire l'URL de base de données"
exit 1
fi
fi
echo "🔗 [VERIFY] Test de connexion à la base de données..."
if ! psql "$DATABASE_URL" -c "SELECT 1" > /dev/null 2>&1; then
echo "❌ [VERIFY] Connexion à la base de données échouée"
exit 1
fi
echo "✅ [VERIFY] Connexion à la base de données réussie"
# Vérifier l'existence de la table dlc_products
echo "🔍 [VERIFY] Vérification de l'existence de la table dlc_products..."
if ! psql "$DATABASE_URL" -tAc "SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_schema='public' AND table_name='dlc_products');" | grep -q "t"; then
echo "❌ [VERIFY] Table dlc_products n'existe pas"
exit 1
fi
echo "✅ [VERIFY] Table dlc_products existe"
# Vérifier les colonnes stock épuisé
echo "🔍 [VERIFY] Vérification des colonnes stock épuisé..."
missing_columns=()
for column in "stock_epuise" "stock_epuise_by" "stock_epuise_at"; do
if psql "$DATABASE_URL" -tAc "SELECT EXISTS (SELECT FROM information_schema.columns WHERE table_name='dlc_products' AND column_name='$column');" | grep -q "f"; then
missing_columns+=("$column")
fi
done
if [ ${#missing_columns[@]} -gt 0 ]; then
echo "❌ [VERIFY] Colonnes manquantes: ${missing_columns[*]}"
echo "🔧 [VERIFY] La migration doit être exécutée"
exit 1
else
echo "✅ [VERIFY] Toutes les colonnes stock épuisé sont présentes"
fi
# Vérifier les types de données
echo "🔍 [VERIFY] Vérification des types de données..."
psql "$DATABASE_URL" -c "
SELECT
column_name,
data_type,
is_nullable,
column_default
FROM information_schema.columns
WHERE table_name = 'dlc_products'
AND column_name IN ('stock_epuise', 'stock_epuise_by', 'stock_epuise_at')
ORDER BY column_name;
"
# Vérifier l'index
echo "🔍 [VERIFY] Vérification de l'index stock épuisé..."
if psql "$DATABASE_URL" -tAc "SELECT EXISTS (SELECT FROM pg_indexes WHERE tablename='dlc_products' AND indexname='idx_dlc_products_stock_epuise');" | grep -q "t"; then
echo "✅ [VERIFY] Index idx_dlc_products_stock_epuise existe"
else
echo "⚠️ [VERIFY] Index idx_dlc_products_stock_epuise manquant"
fi
# Test d'une requête simple
echo "🔍 [VERIFY] Test d'une requête avec les nouveaux champs..."
if psql "$DATABASE_URL" -c "SELECT stock_epuise, stock_epuise_by, stock_epuise_at FROM dlc_products LIMIT 1;" > /dev/null 2>&1; then
echo "✅ [VERIFY] Requête avec les nouveaux champs réussie"
else
echo "❌ [VERIFY] Erreur lors de la requête avec les nouveaux champs"
exit 1
fi
# Compter les produits par statut de stock
echo "🔍 [VERIFY] Statistiques des produits par statut de stock..."
psql "$DATABASE_URL" -c "
SELECT
CASE
WHEN stock_epuise = true THEN 'stock_epuise'
WHEN stock_epuise = false THEN 'stock_disponible'
ELSE 'indetermine'
END as statut_stock,
COUNT(*) as nombre_produits
FROM dlc_products
GROUP BY stock_epuise
ORDER BY stock_epuise;
"
echo ""
echo "✅ [VERIFY] Vérification de la migration DLC terminée avec succès!"
echo "🚀 [VERIFY] L'application peut maintenant utiliser les fonctionnalités stock épuisé"