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