Full Refresh INSERTs a per-track year (from file tags) into tracks.year, but that column was only ever in the live INSERT — never in CREATE TABLE and never in a migration. So on EVERY db (old and current — verified the shipped music_library.db lacks it too) every Full Refresh track insert hard-failed with 'table tracks has no column named year', importing 0 tracks while artists/albums succeeded. Fix (additive + nullable, nothing reads it but the writer): - add year INTEGER to the tracks CREATE TABLE (new DBs) - ALTER it onto existing tracks tables in _ensure_core_media_schema_columns (the repair backstop that already runs every init), right beside the file_size repair Tests (tests/test_tracks_year_migration.py): fresh-DB has it, nullable, idempotent, ALTERs onto an old year-less table, and a regression that the exact Full Refresh insert fails before the repair and succeeds after. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| music_database.py | ||
| personalized_schema.py | ||