feat(10-01): update SQL schema files for multi-library fresh installs

- Create _libraries.sql with libraries table (name, path, created_at)
- Add library_id FK column and index to audio_files.sql
- Update playlist_tracks.sql with nullable audio_file_id, SET NULL FK, and 6 phantom columns
- Add af.library_id to track_metadata VIEW
- Regenerate sqlc code for updated schemas
- Fix playlist.go to use sql.NullInt64 for nullable audio_file_id
This commit is contained in:
2026-03-09 09:36:47 -04:00
parent 6f44512ebc
commit 535855b383
8 changed files with 68 additions and 22 deletions
+5 -4
View File
@@ -3,6 +3,7 @@ package playlist
import (
"context"
"database/sql"
"errors"
"fmt"
"log/slog"
@@ -867,7 +868,7 @@ func (s *Service) ImportPlaylist(
s.db.Ctx,
sqlcgen.AddPlaylistTrackParams{
PlaylistID: created.ID,
AudioFileID: audioFile.ID,
AudioFileID: sql.NullInt64{Int64: audioFile.ID, Valid: true},
Position: int64(position),
},
)
@@ -1065,7 +1066,7 @@ func (s *Service) restoreSinglePlaylist(
s.db.Ctx,
sqlcgen.AddPlaylistTrackParams{
PlaylistID: playlistID,
AudioFileID: audioFile.ID,
AudioFileID: sql.NullInt64{Int64: audioFile.ID, Valid: true},
Position: int64(position),
},
)
@@ -1125,7 +1126,7 @@ func (s *Service) addSingleTrack(
s.db.Ctx,
sqlcgen.AddPlaylistTrackParams{
PlaylistID: playlistID,
AudioFileID: audioFile.ID,
AudioFileID: sql.NullInt64{Int64: audioFile.ID, Valid: true},
Position: position,
},
)
@@ -1654,7 +1655,7 @@ func (s *Service) ResolvePhantomTracks(
s.db.Ctx,
sqlcgen.AddPlaylistTrackParams{
PlaylistID: playlistID,
AudioFileID: audioFile.ID,
AudioFileID: sql.NullInt64{Int64: audioFile.ID, Valid: true},
Position: nextPos + int64(resolved),
},
)