#!/bin/bash # # Dataflow Uninstall Script # Removes database user, database, and optionally .env # echo "⚠️ Dataflow Uninstall" echo "=====================" echo "" # Load .env if it exists if [ -f .env ]; then export $(cat .env | grep -v '^#' | xargs) fi DB_NAME=${DB_NAME:-dataflow} DB_USER=${DB_USER:-dataflow} echo "⚠️ This will permanently delete:" echo " - Database: $DB_NAME" echo " - User: $DB_USER" echo "" read -p "Type 'delete' to confirm: " CONFIRM if [ "$CONFIRM" != "delete" ]; then echo "Cancelled." exit 0 fi # Prompt for admin credentials echo "" echo "📋 PostgreSQL Admin Credentials" echo "" read -p "Admin username [postgres]: " ADMIN_USER ADMIN_USER=${ADMIN_USER:-postgres} read -s -p "Admin password: " ADMIN_PASS echo "" DB_HOST=${DB_HOST:-localhost} DB_PORT=${DB_PORT:-5432} DB_NAME=${DB_NAME:-dataflow} DB_USER=${DB_USER:-dataflow} # Test admin connection echo "" echo "🔍 Testing PostgreSQL admin connection..." export PGPASSWORD="$ADMIN_PASS" if ! psql -U "$ADMIN_USER" -h "$DB_HOST" -p "$DB_PORT" -d postgres -c '\q' 2>/dev/null; then echo "✗ Cannot connect to PostgreSQL" exit 1 fi echo "✓ Connected" # Drop database echo "" echo "🗄️ Dropping database..." psql -U "$ADMIN_USER" -h "$DB_HOST" -p "$DB_PORT" -d postgres -c "DROP DATABASE IF EXISTS $DB_NAME;" 2>/dev/null || true echo "✓ Database dropped" # Drop user echo "" echo "👤 Dropping user..." psql -U "$ADMIN_USER" -h "$DB_HOST" -p "$DB_PORT" -d postgres -c "DROP USER IF EXISTS $DB_USER;" 2>/dev/null || true echo "✓ User dropped" unset PGPASSWORD # Optionally remove .env echo "" read -p "Remove .env file? [y/N]: " REMOVE_ENV if [ "$REMOVE_ENV" == "y" ] || [ "$REMOVE_ENV" == "Y" ]; then rm -f .env echo "✓ .env removed" fi # Optionally remove node_modules echo "" read -p "Remove node_modules? [y/N]: " REMOVE_MODULES if [ "$REMOVE_MODULES" == "y" ] || [ "$REMOVE_MODULES" == "Y" ]; then rm -rf node_modules echo "✓ node_modules removed" fi echo "" echo "✅ Uninstall complete!" echo ""