- 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
21 lines
679 B
SQL
21 lines
679 B
SQL
CREATE TABLE IF NOT EXISTS playlist_tracks (
|
|
id INTEGER PRIMARY KEY,
|
|
playlist_id INTEGER NOT NULL,
|
|
audio_file_id INTEGER,
|
|
position INTEGER NOT NULL,
|
|
phantom_title TEXT,
|
|
phantom_artist TEXT,
|
|
phantom_album TEXT,
|
|
phantom_duration_ms INTEGER,
|
|
phantom_genre TEXT,
|
|
phantom_cover_art_path TEXT,
|
|
FOREIGN KEY(playlist_id) REFERENCES playlists(id) ON DELETE CASCADE,
|
|
FOREIGN KEY(audio_file_id) REFERENCES audio_files(id) ON DELETE SET NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_playlist_tracks_playlist_id
|
|
ON playlist_tracks(playlist_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_playlist_tracks_audio_file_id
|
|
ON playlist_tracks(audio_file_id);
|