musicpom/utils/init.sql
2025-04-18 10:50:34 -04:00

36 lines
1.0 KiB
SQL

DROP TABLE IF EXISTS song_playlist;
DROP TABLE IF EXISTS song;
DROP TABLE IF EXISTS playlist;
CREATE TABLE song(
-- In SQLite, a column with type INTEGER PRIMARY KEY is an alias for the ROWID (except in WITHOUT ROWID tables) which is always a 64-bit signed integer.
id integer primary key,
filepath varchar(511) UNIQUE,
title varchar(255),
album varchar(255),
artist varchar(255),
album_artist varchar(255),
track_number integer,
length_seconds integer,
genre varchar(255),
codec varchar(15),
album_date date,
bitrate int,
date_added TIMESTAMP default CURRENT_TIMESTAMP
);
CREATE TABLE playlist(
id integer primary key,
name varchar(64),
date_created TIMESTAMP default CURRENT_TIMESTAMP
);
CREATE TABLE song_playlist(
playlist_id integer,
song_id integer,
date_created TIMESTAMP default CURRENT_TIMESTAMP,
primary key (playlist_id, song_id),
foreign key (playlist_id) references playlist(id),
foreign key (song_id) references song(id)
);