• v1.3.1 146f3706a5

    FrederikBaerentsen released this 2025-12-20 21:47:26 +01:00 | 0 commits to master since this release

    Warning


    Breaking Changes

    Version 1.3 introduces breaking changes to the default data folder structure and minifigures path.

    Migration Required for Existing Installations:

    • All user data now consolidated into single data/ folder for easier backup and Docker volume mapping
    • Default minifigures folder changed from minifigs to minifigures
    • Configuration file can now be stored in data/.env (recommended) or .env (backward compatible)

    See Migration Guide for detailed upgrade instructions.

    New Functionality

    • Database Integrity Check and Cleanup
      • Added database integrity scanner to detect orphaned records and foreign key violations
      • New "Check Database Integrity" button in admin panel scans for issues
      • Detects orphaned sets, parts, and parts with missing set references
      • Warning prompts users to backup database before cleanup
      • Cleanup removes all orphaned records in one operation
      • Detailed scan results show affected records with counts and descriptions
    • Database Optimization
      • Added "Optimize Database" button to re-create performance indexes
      • Safe to run after database imports or restores
      • Re-creates all indexes from migration #19 using CREATE INDEX IF NOT EXISTS
      • Runs ANALYZE to rebuild query statistics
      • Runs PRAGMA optimize for additional query plan optimization
      • Helpful after importing backup databases that may lack performance optimizations

    Bug Fixes

    • Fixed foreign key constraint errors during set imports: Resolved FOREIGN KEY constraint failed errors when importing sets with parts and minifigures
      • Fixed insertion order in bricktracker/part.py: Parent records (rebrickable_parts) now inserted before child records (bricktracker_parts)
      • Fixed insertion order in bricktracker/minifigure.py: Parent records (rebrickable_minifigures) now inserted before child records (bricktracker_minifigures)
      • Ensures foreign key references are valid when SQLite checks constraints
    • Fixed set metadata updates: Owner, status, and tag checkboxes now properly persist changes on set details page
      • Fixed update_set_state() method to commit database transactions (was using deferred execution without commit)
      • All metadata updates (owner, status, tags, storage, purchase info) now work consistently
    • Fixed nil image downloads: Placeholder images for parts and minifigures without images now download correctly
      • Removed early returns that prevented nil image downloads
      • Nil images now properly saved to configured folders (e.g., /app/data/parts/nil.jpg)
    • Fixed error logging for missing files: File not found errors now show actual configured folder paths instead of just URL paths
      • Added detailed logging showing both file path and configured folder for easier debugging
    • Fixed minifigure filters in client-side pagination mode: Owner and other filters now work correctly when server-side pagination is disabled
      • Aligned filter behavior with parts page (applies filters server-side, then loads filtered data for client-side search)

    Update using latest tag:

    If your compose.yaml contains image: gitea.baerentsen.space/frederikbaerentsen/bricktracker:latest, update with:

    # Pull the new version
    docker compose pull
    
    # Restart the container with the new image
    docker compose down
    docker compose up -d
    

    Update using version-tag:

    If your compose.yaml specifies a version like image: gitea.baerentsen.space/frederikbaerentsen/bricktracker:1.3:

    Edit your compose.yaml and change the version to 1.3.1:

    image: gitea.baerentsen.space/frederikbaerentsen/bricktracker:1.3.1
    
    # Pull the new version
    docker compose pull
    
    # Restart the container with the new image
    docker compose down
    docker compose up -d
    
    
    Downloads