initial commit - LeDiscord plateforme des copains
This commit is contained in:
101
migrate.sh
Executable file
101
migrate.sh
Executable file
@@ -0,0 +1,101 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ===========================================
|
||||
# LeDiscord - Script de migration de base de données
|
||||
# ===========================================
|
||||
|
||||
set -e
|
||||
|
||||
echo "🗄️ Script de migration de base de données LeDiscord"
|
||||
|
||||
# Vérifier que Docker est en cours d'exécution
|
||||
if ! docker info > /dev/null 2>&1; then
|
||||
echo "❌ Docker n'est pas en cours d'exécution"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Vérifier que le conteneur backend est en cours d'exécution
|
||||
if ! docker ps | grep -q "lediscord_backend"; then
|
||||
echo "❌ Le conteneur backend n'est pas en cours d'exécution"
|
||||
echo " Lancez d'abord 'make start' ou 'docker-compose up -d'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ Conteneur backend en cours d'exécution"
|
||||
|
||||
# Menu des options
|
||||
echo ""
|
||||
echo "Choisissez une option :"
|
||||
echo "1) Créer une migration"
|
||||
echo "2) Appliquer les migrations"
|
||||
echo "3) Annuler la dernière migration"
|
||||
echo "4) Voir l'état des migrations"
|
||||
echo "5) Réinitialiser la base de données (⚠️ DANGEREUX)"
|
||||
echo "6) Sauvegarder la base de données"
|
||||
echo "7) Restaurer la base de données"
|
||||
echo "0) Quitter"
|
||||
echo ""
|
||||
|
||||
read -p "Votre choix (0-7) : " choice
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
echo "📝 Création d'une migration..."
|
||||
read -p "Nom de la migration : " migration_name
|
||||
docker exec lediscord_backend alembic revision --autogenerate -m "$migration_name"
|
||||
echo "✅ Migration créée"
|
||||
;;
|
||||
2)
|
||||
echo "🔄 Application des migrations..."
|
||||
docker exec lediscord_backend alembic upgrade head
|
||||
echo "✅ Migrations appliquées"
|
||||
;;
|
||||
3)
|
||||
echo "↩️ Annulation de la dernière migration..."
|
||||
docker exec lediscord_backend alembic downgrade -1
|
||||
echo "✅ Dernière migration annulée"
|
||||
;;
|
||||
4)
|
||||
echo "📊 État des migrations..."
|
||||
docker exec lediscord_backend alembic current
|
||||
echo ""
|
||||
echo "Historique des migrations :"
|
||||
docker exec lediscord_backend alembic history
|
||||
;;
|
||||
5)
|
||||
echo "⚠️ ATTENTION : Cette action va supprimer toutes les données !"
|
||||
read -p "Êtes-vous sûr ? Tapez 'OUI' pour confirmer : " confirm
|
||||
if [ "$confirm" = "OUI" ]; then
|
||||
echo "🗑️ Suppression de la base de données..."
|
||||
docker exec lediscord_backend alembic downgrade base
|
||||
docker exec lediscord_backend alembic upgrade head
|
||||
echo "✅ Base de données réinitialisée"
|
||||
else
|
||||
echo "❌ Opération annulée"
|
||||
fi
|
||||
;;
|
||||
6)
|
||||
echo "💾 Sauvegarde de la base de données..."
|
||||
timestamp=$(date +%Y%m%d_%H%M%S)
|
||||
docker exec lediscord_postgres pg_dump -U lediscord_user lediscord > "backup_${timestamp}.sql"
|
||||
echo "✅ Sauvegarde créée : backup_${timestamp}.sql"
|
||||
;;
|
||||
7)
|
||||
echo "📥 Restauration de la base de données..."
|
||||
read -p "Nom du fichier de sauvegarde : " backup_file
|
||||
if [ -f "$backup_file" ]; then
|
||||
docker exec -i lediscord_postgres psql -U lediscord_user lediscord < "$backup_file"
|
||||
echo "✅ Base de données restaurée"
|
||||
else
|
||||
echo "❌ Fichier de sauvegarde non trouvé : $backup_file"
|
||||
fi
|
||||
;;
|
||||
0)
|
||||
echo "👋 Au revoir !"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "❌ Choix invalide"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user