# Scripts Directory This directory contains utility scripts organized by purpose. ## Directory Structure ### `db/` - Database Utilities Database management and migration scripts: - `drop_all_tables.py` - Drop all database tables - `drop_all_tables_web.py` - Drop all web database tables - `grant_auth_db_permissions.py` - Grant permissions on auth database - `migrate_sqlite_to_postgresql.py` - Migrate from SQLite to PostgreSQL - `recreate_tables_web.py` - Recreate web database tables - `show_db_tables.py` - Display database table information ### `debug/` - Debug and Analysis Scripts Debugging and analysis tools: - `analyze_all_faces.py` - Analyze all faces in database - `analyze_pose_matching.py` - Analyze face pose matching - `analyze_poses.py` - Analyze face poses - `check_database_tables.py` - Check database table structure - `check_identified_poses_web.py` - Check identified poses in web database - `check_two_faces_pose.py` - Compare poses of two faces - `check_yaw_angles.py` - Check face yaw angles - `debug_pose_classification.py` - Debug pose classification - `diagnose_frontend_issues.py` - Diagnose frontend issues - `test_eye_visibility.py` - Test eye visibility detection - `test_pose_calculation.py` - Test pose calculation ### `utils/` - Utility Scripts General utility scripts: - `fix_admin_password.py` - Fix admin user password - `update_reported_photo_status.py` - Update reported photo status ## Root-Level Scripts Project-specific scripts remain in the repository root: - `install.sh` - Installation script - `run_api_with_worker.sh` - Start API with worker - `start_backend.sh` - Start backend server - `stop_backend.sh` - Stop backend server - `run_worker.sh` - Run RQ worker - `demo.sh` - Demo helper script ## Database Shell Scripts Database-related shell scripts remain in `scripts/`: - `drop_auth_database.sh` - Drop auth database - `grant_auth_db_delete_permission.sh` - Grant delete permissions - `setup_postgresql.sh` - Set up PostgreSQL ## Log Management Scripts Quick access to service logs for troubleshooting: - `check-logs.sh` - Check recent errors from all services - `tail-errors.sh` - Follow error logs in real-time - `view-recent-errors.sh` - View errors from the last N minutes (default: 10) - `setup-log-rotation.sh` - Configure PM2 log rotation to prevent log bloat ### Quick Usage ```bash # Check all service logs for recent errors ./scripts/check-logs.sh # Follow error logs in real-time (Ctrl+C to exit) ./scripts/tail-errors.sh # View errors from last 10 minutes ./scripts/view-recent-errors.sh # View errors from last 30 minutes ./scripts/view-recent-errors.sh 30 # Setup log rotation (run once) ./scripts/setup-log-rotation.sh ``` **Log Locations:** - All logs: `/home/appuser/.pm2/logs/` - API errors: `/home/appuser/.pm2/logs/punimtag-api-error.log` - Worker errors: `/home/appuser/.pm2/logs/punimtag-worker-error.log` - Admin errors: `/home/appuser/.pm2/logs/punimtag-admin-error.log` - Viewer errors: `/home/appuser/.pm2/logs/punimtag-viewer-error.log` ## Usage Most scripts can be run directly: ```bash # Database utilities python scripts/db/show_db_tables.py # Debug scripts python scripts/debug/analyze_all_faces.py # Utility scripts python scripts/utils/fix_admin_password.py ``` Some scripts may require environment variables or database connections. Check individual script documentation or comments for specific requirements.