67 lines
2.0 KiB
Bash
Executable File
67 lines
2.0 KiB
Bash
Executable File
#!/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}"
|