# Database Clearing for Development **Author**: Matthew Raymer **Date**: 2025-07-11 **Status**: **ACTIVE** - Production Ready ## Overview TimeSafari provides a simple script-based approach to clear the database for development purposes. This avoids the complexity of programmatic database clearing and provides reliable, platform-specific solutions. ## Quick Start ```bash # Run the interactive database clearing script ./scripts/clear-database.sh # Then restart your development server npm run build:electron:dev # For Electron npm run build:web:dev # For Web ``` ## Platform-Specific Approaches ### Electron (Desktop App) The script automatically detects your platform and clears the SQLite database files: - **Linux**: `~/.config/TimeSafari/` - **macOS**: `~/Library/Application Support/TimeSafari/` - **Windows**: `%APPDATA%\TimeSafari` ### Web Browser For web browsers, the script provides two approaches: #### 1. Custom Data Directory (Recommended) Create an isolated browser profile for development: ```bash # Create isolated profile mkdir ~/timesafari-dev-data # Start browser with custom profile google-chrome --user-data-dir=~/timesafari-dev-data # Clear when needed rm -rf ~/timesafari-dev-data ``` #### 2. Manual Browser Clearing Use browser DevTools to clear IndexedDB: 1. Open Developer Tools (F12) 2. Go to Application/Storage tab 3. Find 'IndexedDB' section 4. Delete 'TimeSafari' database 5. Refresh the page ## Why Script-Based Approach? ### **Simplicity** - No complex programmatic database clearing - No browser storage complications - No race conditions or permission issues ### **Reliability** - Direct file system access for Electron - Isolated browser profiles for web - Clear, predictable behavior ### **Safety** - Interactive script guides users - Platform-specific instructions - Only clears TimeSafari data ## Manual Commands If you prefer manual commands: ### Electron ```bash # Linux rm -rf ~/.config/TimeSafari/* # macOS rm -rf ~/Library/Application\ Support/TimeSafari/* # Windows rmdir /s /q %APPDATA%\TimeSafari ``` ### Web Browser ```bash # Create and use isolated profile mkdir ~/timesafari-dev-data google-chrome --user-data-dir=~/timesafari-dev-data # Clear when needed rm -rf ~/timesafari-dev-data ``` ## Best Practices 1. **Stop the development server** before clearing 2. **Use isolated browser profiles** for web development 3. **Restart the development server** after clearing 4. **Backup important data** before clearing 5. **Use the script** for consistent behavior ## Troubleshooting ### Script Not Found ```bash # Make sure script is executable chmod +x scripts/clear-database.sh # Run from project root ./scripts/clear-database.sh ``` ### Permission Errors ```bash # Check file permissions ls -la ~/.config/TimeSafari/ # Use sudo if needed (rare) sudo rm -rf ~/.config/TimeSafari/* ``` ### Browser Profile Issues ```bash # Ensure browser is completely closed pkill -f chrome pkill -f firefox # Then clear profile rm -rf ~/timesafari-dev-data ``` --- **Last Updated**: 2025-07-11 **Version**: 1.0.3-beta **Status**: Production Ready