NeahStable/scripts/migrate-prod.sh
2026-01-12 10:37:21 +01:00

67 lines
2.0 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Script de migration Prisma pour la production
# Usage: ./scripts/migrate-prod.sh [--dry-run]
set -e
# Couleurs pour les messages
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Vérifier que DATABASE_URL est définie
if [ -z "$DATABASE_URL" ]; then
echo -e "${RED}❌ ERREUR: DATABASE_URL n'est pas définie${NC}"
echo "Définissez-la avec: export DATABASE_URL='postgresql://...'"
exit 1
fi
# Mode dry-run
DRY_RUN=false
if [ "$1" == "--dry-run" ]; then
DRY_RUN=true
echo -e "${YELLOW}⚠️ Mode dry-run activé - aucune modification ne sera appliquée${NC}"
fi
echo -e "${GREEN}🚀 Migration Prisma pour la production${NC}"
echo ""
# Vérifier la connexion à la base de données
echo -e "${YELLOW}📡 Vérification de la connexion à la base de données...${NC}"
if ! npx prisma db execute --stdin <<< "SELECT 1;" > /dev/null 2>&1; then
echo -e "${RED}❌ Impossible de se connecter à la base de données${NC}"
echo "Vérifiez que DATABASE_URL est correcte et que la base de données est accessible"
exit 1
fi
echo -e "${GREEN}✅ Connexion réussie${NC}"
echo ""
# Afficher l'état actuel des migrations
echo -e "${YELLOW}📊 État actuel des migrations:${NC}"
npx prisma migrate status
echo ""
# Demander confirmation si pas en dry-run
if [ "$DRY_RUN" = false ]; then
echo -e "${YELLOW}⚠️ Vous êtes sur le point d'appliquer les migrations en PRODUCTION${NC}"
read -p "Continuer? (oui/non): " -r
if [[ ! $REPLY =~ ^[Oo]ui$ ]]; then
echo -e "${RED}❌ Migration annulée${NC}"
exit 0
fi
echo ""
fi
# Appliquer les migrations
if [ "$DRY_RUN" = false ]; then
echo -e "${YELLOW}🔄 Application des migrations...${NC}"
npx prisma migrate deploy
echo -e "${GREEN}✅ Migrations appliquées avec succès${NC}"
else
echo -e "${YELLOW} Mode dry-run: les migrations ne seraient pas appliquées${NC}"
fi
echo ""
echo -e "${GREEN}✨ Migration terminée${NC}"