Files
picpeak/backend/scripts/README.md
T
paul 1d94398e2d
Test and Lint / backend-test (push) Successful in 1m8s
continuous-integration/drone/push Build is passing
Test and Lint / frontend-test (push) Successful in 2m23s
Version and Release / version-bump (push) Successful in 32s
Version and Release / trigger-drone (push) Successful in 3s
fix: add thumbnail cleanup on archive deletion and diagnostic scripts
- Fix archive deletion to also clean up associated thumbnails
- Add cleanup-thumbnails.js script to remove temporary and orphaned thumbnails
- Add diagnose-thumbnails.js script to troubleshoot thumbnail serving issues
- Update README with documentation for new scripts

This prevents thumbnail accumulation when events are deleted and helps
diagnose why thumbnails might not be showing despite existing on disk.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15 11:33:11 +02:00

2.4 KiB

Storage Management Scripts

check-storage.js

Checks the storage directory structure and verifies that photo files exist.

Usage:

# Check overall storage structure
node scripts/check-storage.js

# Check specific event
node scripts/check-storage.js wedding-test-gallery-2025-07-14-1

What it checks:

  • Storage directory structure and permissions
  • Event directories
  • Photo files existence
  • Thumbnail files existence
  • Database vs filesystem consistency

regenerate-thumbnails.js

Regenerates missing thumbnails for photos in the database.

Usage:

# Regenerate all missing thumbnails
node scripts/regenerate-thumbnails.js

# Regenerate thumbnails for specific event (by ID)
node scripts/regenerate-thumbnails.js 2

What it does:

  • Scans photos in database
  • Checks if thumbnails exist
  • Generates missing thumbnails using Sharp
  • Updates database with thumbnail paths
  • Reports success/error statistics

Prerequisites:

  • Node.js environment
  • Database access
  • Write permissions to storage directory
  • Sharp library installed

Production Usage

On your production server:

  1. First, check the storage structure:

    cd /path/to/picpeak/backend
    NODE_ENV=production node scripts/check-storage.js wedding-test-gallery-2025-07-14-1
    
  2. If thumbnails are missing, regenerate them:

    NODE_ENV=production node scripts/regenerate-thumbnails.js 2
    

Note: Replace 2 with the actual event ID from your database.

cleanup-thumbnails.js

Cleans up temporary and orphaned thumbnail files.

Usage:

# Dry run - see what would be deleted
node scripts/cleanup-thumbnails.js --dry-run

# Actually delete orphaned thumbnails
node scripts/cleanup-thumbnails.js

What it does:

  • Identifies temporary thumbnails (thumb_temp_*)
  • Finds orphaned thumbnails not linked to any photo
  • Removes unnecessary files to free up space
  • Reports statistics on cleanup

diagnose-thumbnails.js

Diagnoses why thumbnails might not be showing for a specific event.

Usage:

node scripts/diagnose-thumbnails.js 2

What it checks:

  • Thumbnail paths in database vs filesystem
  • Path format inconsistencies
  • Missing thumbnail files
  • Provides SQL to fix path issues

Common Issues:

  1. Path mismatch: Database has wrong thumbnail path format
  2. Missing files: Thumbnails were never generated
  3. Permission issues: Web server can't read thumbnail files