forked from jsnbuchanan/crowd-funder-for-time-pwa
- Create logical sub-folder classification for all documentation - Organize 91 migration files into component-specific folders - Separate user guides, build system, migration, and development docs - Maintain maximum 7 items per folder for easy navigation - Add comprehensive README and reorganization summary - Ensure all changes tracked in git with proper versioning Structure: - user-guides/ (3 items): user-facing documentation - build-system/ (3 items): core, platforms, automation - migration/ (6 items): assessments, testing, templates - development/ (4 items): tools and standards - architecture/, testing/, examples/ (ready for future docs) Total: 24 folders created, all within 7-item limits
146 lines
3.1 KiB
Markdown
146 lines
3.1 KiB
Markdown
# 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 |