github jackkerouac/aphrodite v3.0.0
Major Infrastructure Upgrade: YAML to SQLite Migration

latest releases: v4.1.3, v4.1.2, v4.1.1...
3 months ago

This is a comprehensive update that migrates Aphrodite's configuration storage from YAML files to a robust SQLite database while maintaining complete backward compatibility and user transparency.

Core Implementation

  • New SQLite Schema: Structured database with settings, api_keys, badge_settings, and version tables
  • SettingsService Class: Complete CRUD operations for database management with type-safe storage
  • StandaloneSettingsService: Flask-independent database access for subprocess operations
  • Automatic Migration: Silent conversion of existing YAML configurations to SQLite on startup
  • Compatibility Layer: Transparent fallback system ensuring existing code continues to work unchanged

Key Features

  • Zero User Impact: Completely automatic migration with no user intervention required
  • Database-First Architecture: All settings now use SQLite with YAML fallback for legacy support
  • Enhanced Performance: Faster settings access and reduced file I/O operations
  • Data Integrity: Structured storage with proper validation and backup mechanisms
  • Subprocess Compatibility: Full database access for both web interface and background operations

Migration Process

  • Automatic Detection: System detects YAML files and migrates them seamlessly on startup
  • Backup Creation: Original YAML files are preserved for safety and potential rollback
  • Transparent Operation: Users experience no functional changes or interruptions
  • Fallback Support: Maintains YAML compatibility during transition period

Technical Improvements

  • Connection Check Enhancement: Real API testing for all services (Jellyfin, OMDB, TMDB, MDBList, AniDB)
  • Unicode Handling: Fixed Windows subprocess encoding issues with UTF-8 support
  • Docker Environment: Proper SQLite path handling for both Docker and local development
  • Poster Manager Integration: Complete database integration for all poster operations
  • Settings Persistence: All web interface changes now save to SQLite database
  • Dashboard Simplification: Merged duplicate buttons into single "Poster Manager" entry point

Testing Status

  • Migration Tested: Confirmed YAML to SQLite conversion works flawlessly
  • Docker Compatibility: Tested in containerized environment with volume mounts
  • User Experience: Zero disruption during upgrade process
  • Performance: Improved settings loading and persistence
  • Backward Compatibility: All existing functionality preserved

This migration establishes a solid foundation for future Aphrodite enhancements while ensuring a seamless transition for existing users. The database-first architecture improves performance, reliability, and maintainability across the entire application.

Files Changed

  • Core Services: settings_service.py, standalone_settings_service.py, settings_compat.py
  • Web Interface: Dashboard button consolidation, Poster Manager description
  • Configuration: Enhanced Docker support and automatic migration
  • Documentation: Updated changelog with comprehensive feature documentation

Don't miss a new aphrodite release

NewReleases is sending notifications on new releases.