Files
crowd-funder-for-time-pwa/scripts/clear-database.sh
Matthew Raymer abd8f7a5dd feat: implement script-based database clearing for development
- Add interactive clear-database.sh script with platform detection
- Support Electron SQLite database clearing (Linux/macOS/Windows)
- Provide web browser clearing instructions (custom profiles + DevTools)
- Remove complex programmatic database clearing from platform services
- Update documentation with comprehensive clearing guide
- Add safety features: interactive guidance, platform-specific paths
- Simplify approach: avoid browser storage complications and race conditions

Enables reliable database clearing for development without complex code.
2025-07-11 08:04:28 +00:00

164 lines
4.9 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
# TimeSafari Database Clearing Script
# Author: Matthew Raymer
# Date: 2025-07-11
set -e
echo "=== TimeSafari Database Clearing Script ==="
echo ""
# Detect platform
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
PLATFORM="linux"
elif [[ "$OSTYPE" == "darwin"* ]]; then
PLATFORM="macos"
elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]]; then
PLATFORM="windows"
else
PLATFORM="unknown"
fi
echo "Detected platform: $PLATFORM"
echo ""
# Function to clear Electron database
clear_electron_database() {
echo "🧹 Clearing Electron Database..."
local db_path=""
case $PLATFORM in
"linux")
db_path="$HOME/Databases/TimeSafari"
;;
"macos")
db_path="$HOME/Library/Application Support/TimeSafari"
;;
"windows")
db_path="$APPDATA/TimeSafari"
;;
*)
echo "❌ Unknown platform: $PLATFORM"
exit 1
;;
esac
if [[ -d "$db_path" ]]; then
echo "Found database at: $db_path"
echo "Removing database files..."
rm -rf "$db_path"/*
echo "✅ Electron database cleared successfully!"
else
echo " No database found at: $db_path"
echo " (This is normal if you haven't run the app yet)"
fi
}
# Function to show web browser instructions
show_web_instructions() {
echo "🌐 Web Browser Database Clearing Instructions:"
echo ""
echo "For reliable database clearing in web browsers, use a custom data directory:"
echo ""
case $PLATFORM in
"linux")
echo "📁 Create custom data directory:"
echo " mkdir -p ~/timesafari-dev-data"
echo ""
echo "🚀 Start browser with custom data directory:"
echo " # Chrome/Chromium:"
echo " google-chrome --user-data-dir=~/timesafari-dev-data"
echo " # Firefox:"
echo " firefox --profile ~/timesafari-dev-data"
echo ""
echo "🧹 Clear database:"
echo " rm -rf ~/timesafari-dev-data"
;;
"macos")
echo "📁 Create custom data directory:"
echo " mkdir -p ~/timesafari-dev-data"
echo ""
echo "🚀 Start browser with custom data directory:"
echo " # Chrome:"
echo " /Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --user-data-dir=~/timesafari-dev-data"
echo " # Firefox:"
echo " /Applications/Firefox.app/Contents/MacOS/firefox --profile ~/timesafari-dev-data"
echo ""
echo "🧹 Clear database:"
echo " rm -rf ~/timesafari-dev-data"
;;
"windows")
echo "📁 Create custom data directory:"
echo " mkdir %USERPROFILE%\\timesafari-dev-data"
echo ""
echo "🚀 Start browser with custom data directory:"
echo " # Chrome:"
echo " \"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\" --user-data-dir=%USERPROFILE%\\timesafari-dev-data"
echo " # Firefox:"
echo " \"C:\\Program Files\\Mozilla Firefox\\firefox.exe\" --profile %USERPROFILE%\\timesafari-dev-data"
echo ""
echo "🧹 Clear database:"
echo " rmdir /s /q %USERPROFILE%\\timesafari-dev-data"
;;
esac
}
# Function to show manual browser clearing
show_manual_browser_clearing() {
echo "🔧 Manual Browser Database Clearing:"
echo ""
echo "If you prefer to use your regular browser profile:"
echo ""
echo "1. Open browser Developer Tools (F12)"
echo "2. Go to Application/Storage tab"
echo "3. Find 'IndexedDB' section"
echo "4. Delete 'TimeSafari' database"
echo "5. Refresh the page"
echo ""
echo "⚠️ Note: This only clears the current site's data."
echo " For complete clearing, use the custom data directory method above."
}
# Main script logic
echo "Choose your platform:"
echo "1. Electron (Desktop App)"
echo "2. Web Browser - Custom Data Directory"
echo "3. Web Browser - Manual Clearing"
echo "4. Show all options"
echo ""
read -p "Enter your choice (1-4): " choice
case $choice in
1)
clear_electron_database
;;
2)
show_web_instructions
;;
3)
show_manual_browser_clearing
;;
4)
echo "=== All Database Clearing Options ==="
echo ""
clear_electron_database
echo ""
show_web_instructions
echo ""
show_manual_browser_clearing
;;
*)
echo "❌ Invalid choice. Please run the script again."
exit 1
;;
esac
echo ""
echo "✅ Database clearing instructions completed!"
echo ""
echo "💡 Tip: After clearing the database, restart your development server:"
echo " npm run build:electron:dev # For Electron"
echo " npm run build:web:dev # For Web"