strawberry-audio-player-win.../data/schema/schema.sql

290 lines
6.9 KiB
MySQL
Raw Normal View History

2018-08-09 18:10:03 +02:00
CREATE TABLE IF NOT EXISTS schema_version (
2018-02-27 18:06:05 +01:00
version INTEGER NOT NULL
);
2018-08-15 01:28:37 +02:00
2018-08-09 18:10:03 +02:00
DELETE FROM schema_version;
2018-08-15 01:28:37 +02:00
2020-02-25 01:08:03 +01:00
INSERT INTO schema_version (version) VALUES (10);
2018-02-27 18:06:05 +01:00
2018-08-09 18:10:03 +02:00
CREATE TABLE IF NOT EXISTS directories (
2018-02-27 18:06:05 +01:00
path TEXT NOT NULL,
subdirs INTEGER NOT NULL
);
2018-08-09 18:10:03 +02:00
CREATE TABLE IF NOT EXISTS subdirectories (
2018-02-27 18:06:05 +01:00
directory_id INTEGER NOT NULL,
path TEXT NOT NULL,
mtime INTEGER NOT NULL
);
2018-08-09 18:10:03 +02:00
CREATE TABLE IF NOT EXISTS songs (
2018-02-27 18:06:05 +01:00
title TEXT NOT NULL,
album TEXT NOT NULL,
artist TEXT NOT NULL,
albumartist TEXT NOT NULL,
track INTEGER NOT NULL DEFAULT -1,
disc INTEGER NOT NULL DEFAULT -1,
year INTEGER NOT NULL DEFAULT -1,
originalyear INTEGER NOT NULL DEFAULT 0,
genre TEXT NOT NULL,
compilation INTEGER NOT NULL DEFAULT -1,
composer TEXT NOT NULL,
performer TEXT NOT NULL,
grouping TEXT NOT NULL,
comment TEXT NOT NULL,
lyrics TEXT NOT NULL,
2018-02-27 18:06:05 +01:00
2019-05-31 01:41:17 +02:00
artist_id INTEGER NOT NULL DEFAULT -1,
album_id TEXT NOT NULL,
2019-05-31 01:41:17 +02:00
song_id INTEGER NOT NULL DEFAULT -1,
2018-02-27 18:06:05 +01:00
beginning INTEGER NOT NULL DEFAULT 0,
length INTEGER NOT NULL DEFAULT 0,
2019-07-10 20:02:21 +02:00
bitrate INTEGER NOT NULL DEFAULT -1,
samplerate INTEGER NOT NULL DEFAULT -1,
bitdepth INTEGER NOT NULL DEFAULT -1,
2018-02-27 18:06:05 +01:00
2018-09-08 12:38:02 +02:00
source INTEGER NOT NULL DEFAULT 0,
2019-07-10 20:02:21 +02:00
directory_id INTEGER NOT NULL DEFAULT -1,
url TEXT NOT NULL,
2018-02-27 18:06:05 +01:00
filetype INTEGER NOT NULL DEFAULT 0,
2019-07-10 20:02:21 +02:00
filesize INTEGER NOT NULL DEFAULT -1,
mtime INTEGER NOT NULL DEFAULT -1,
ctime INTEGER NOT NULL DEFAULT -1,
unavailable INTEGER DEFAULT 0,
playcount INTEGER NOT NULL DEFAULT 0,
skipcount INTEGER NOT NULL DEFAULT 0,
2019-07-10 20:02:21 +02:00
lastplayed INTEGER NOT NULL DEFAULT -1,
compilation_detected INTEGER DEFAULT 0,
compilation_on INTEGER NOT NULL DEFAULT 0,
compilation_off INTEGER NOT NULL DEFAULT 0,
compilation_effective INTEGER NOT NULL DEFAULT 0,
art_automatic TEXT,
art_manual TEXT,
effective_albumartist TEXT,
effective_originalyear INTEGER NOT NULL DEFAULT 0,
cue_path TEXT
);
2019-06-17 23:54:24 +02:00
CREATE TABLE IF NOT EXISTS subsonic_songs (
title TEXT NOT NULL,
album TEXT NOT NULL,
artist TEXT NOT NULL,
albumartist TEXT NOT NULL,
track INTEGER NOT NULL DEFAULT -1,
disc INTEGER NOT NULL DEFAULT -1,
year INTEGER NOT NULL DEFAULT -1,
originalyear INTEGER NOT NULL DEFAULT 0,
genre TEXT NOT NULL,
compilation INTEGER NOT NULL DEFAULT -1,
composer TEXT NOT NULL,
performer TEXT NOT NULL,
grouping TEXT NOT NULL,
comment TEXT NOT NULL,
lyrics TEXT NOT NULL,
artist_id INTEGER NOT NULL DEFAULT -1,
album_id TEXT NOT NULL,
2019-06-17 23:54:24 +02:00
song_id INTEGER NOT NULL DEFAULT -1,
beginning INTEGER NOT NULL DEFAULT 0,
length INTEGER NOT NULL DEFAULT 0,
2019-07-10 20:02:21 +02:00
bitrate INTEGER NOT NULL DEFAULT -1,
samplerate INTEGER NOT NULL DEFAULT -1,
bitdepth INTEGER NOT NULL DEFAULT -1,
source INTEGER NOT NULL DEFAULT 0,
2019-07-10 20:02:21 +02:00
directory_id INTEGER NOT NULL DEFAULT -1,
url TEXT NOT NULL,
filetype INTEGER NOT NULL DEFAULT 0,
2019-07-10 20:02:21 +02:00
filesize INTEGER NOT NULL DEFAULT -1,
mtime INTEGER NOT NULL DEFAULT -1,
ctime INTEGER NOT NULL DEFAULT -1,
2018-02-27 18:06:05 +01:00
unavailable INTEGER DEFAULT 0,
playcount INTEGER NOT NULL DEFAULT 0,
skipcount INTEGER NOT NULL DEFAULT 0,
2019-07-10 20:02:21 +02:00
lastplayed INTEGER NOT NULL DEFAULT -1,
2018-02-27 18:06:05 +01:00
compilation_detected INTEGER DEFAULT 0,
compilation_on INTEGER NOT NULL DEFAULT 0,
compilation_off INTEGER NOT NULL DEFAULT 0,
compilation_effective INTEGER NOT NULL DEFAULT 0,
art_automatic TEXT,
art_manual TEXT,
effective_albumartist TEXT,
effective_originalyear INTEGER NOT NULL DEFAULT 0,
2018-08-09 18:10:03 +02:00
2018-02-27 18:06:05 +01:00
cue_path TEXT
);
2018-08-09 18:10:03 +02:00
CREATE TABLE IF NOT EXISTS playlists (
2018-02-27 18:06:05 +01:00
name TEXT NOT NULL,
last_played INTEGER NOT NULL DEFAULT -1,
ui_order INTEGER NOT NULL DEFAULT 0,
special_type TEXT,
ui_path TEXT,
is_favorite INTEGER NOT NULL DEFAULT 0
);
2018-08-09 18:10:03 +02:00
CREATE TABLE IF NOT EXISTS playlist_items (
2018-02-27 18:06:05 +01:00
playlist INTEGER NOT NULL,
2018-09-08 12:38:02 +02:00
type INTEGER NOT NULL DEFAULT 0,
2018-02-27 18:06:05 +01:00
collection_id INTEGER,
playlist_url TEXT,
2018-02-27 18:06:05 +01:00
title TEXT NOT NULL,
album TEXT NOT NULL,
artist TEXT NOT NULL,
albumartist TEXT NOT NULL,
track INTEGER NOT NULL DEFAULT -1,
disc INTEGER NOT NULL DEFAULT -1,
year INTEGER NOT NULL DEFAULT -1,
originalyear INTEGER NOT NULL DEFAULT 0,
genre TEXT NOT NULL,
compilation INTEGER NOT NULL DEFAULT -1,
composer TEXT NOT NULL,
performer TEXT NOT NULL,
grouping TEXT NOT NULL,
comment TEXT NOT NULL,
lyrics TEXT NOT NULL,
2018-02-27 18:06:05 +01:00
2019-05-31 01:41:17 +02:00
artist_id INTEGER NOT NULL DEFAULT -1,
album_id TEXT NOT NULL,
2019-05-31 01:41:17 +02:00
song_id INTEGER NOT NULL DEFAULT -1,
2018-02-27 18:06:05 +01:00
beginning INTEGER NOT NULL DEFAULT 0,
length INTEGER NOT NULL DEFAULT 0,
2019-07-10 20:02:21 +02:00
bitrate INTEGER NOT NULL DEFAULT -1,
samplerate INTEGER NOT NULL DEFAULT -1,
bitdepth INTEGER NOT NULL DEFAULT -1,
2018-02-27 18:06:05 +01:00
2018-09-08 12:38:02 +02:00
source INTEGER NOT NULL DEFAULT 0,
2018-02-27 18:06:05 +01:00
directory_id INTEGER,
url TEXT,
2018-02-27 18:06:05 +01:00
filetype INTEGER NOT NULL DEFAULT 0,
filesize INTEGER,
mtime INTEGER,
ctime INTEGER,
unavailable INTEGER DEFAULT 0,
playcount INTEGER NOT NULL DEFAULT 0,
skipcount INTEGER NOT NULL DEFAULT 0,
2019-07-10 20:02:21 +02:00
lastplayed INTEGER NOT NULL DEFAULT -1,
2018-02-27 18:06:05 +01:00
compilation_detected INTEGER DEFAULT 0,
compilation_on INTEGER NOT NULL DEFAULT 0,
compilation_off INTEGER NOT NULL DEFAULT 0,
compilation_effective INTEGER NOT NULL DEFAULT 0,
art_automatic TEXT,
art_manual TEXT,
effective_albumartist TEXT,
effective_originalyear INTEGER NOT NULL DEFAULT 0,
cue_path TEXT
);
2018-08-09 18:10:03 +02:00
CREATE TABLE IF NOT EXISTS devices (
2018-02-27 18:06:05 +01:00
unique_id TEXT NOT NULL,
friendly_name TEXT,
size INTEGER,
icon TEXT,
schema_version INTEGER NOT NULL DEFAULT 0,
transcode_mode NOT NULL DEFAULT 3,
transcode_format NOT NULL DEFAULT 5
);
CREATE INDEX IF NOT EXISTS idx_url ON songs (url);
2018-02-27 18:06:05 +01:00
2018-08-09 18:10:03 +02:00
CREATE INDEX IF NOT EXISTS idx_comp_artist ON songs (compilation_effective, artist);
2018-02-27 18:06:05 +01:00
CREATE INDEX IF NOT EXISTS idx_albumartist ON songs (albumartist);
CREATE INDEX IF NOT EXISTS idx_artist ON songs (artist);
2018-08-09 18:10:03 +02:00
CREATE INDEX IF NOT EXISTS idx_album ON songs (album);
2018-02-27 18:06:05 +01:00
2018-08-09 18:10:03 +02:00
CREATE INDEX IF NOT EXISTS idx_title ON songs (title);
2018-02-27 18:06:05 +01:00
2018-08-09 18:10:03 +02:00
CREATE VIEW IF NOT EXISTS duplicated_songs as select artist dup_artist, album dup_album, title dup_title from songs as inner_songs where artist != '' and album != '' and title != '' and unavailable = 0 group by artist, album , title having count(*) > 1;
2018-02-27 18:06:05 +01:00
CREATE VIRTUAL TABLE IF NOT EXISTS songs_fts USING fts5(
2018-02-27 18:06:05 +01:00
ftstitle,
ftsalbum,
ftsartist,
ftsalbumartist,
ftscomposer,
ftsperformer,
ftsgrouping,
ftsgenre,
ftscomment,
tokenize = "unicode61 remove_diacritics 0"
);
CREATE VIRTUAL TABLE IF NOT EXISTS subsonic_songs_fts USING fts5(
2019-06-18 14:41:48 +02:00
ftstitle,
ftsalbum,
ftsartist,
ftsalbumartist,
ftscomposer,
ftsperformer,
2018-02-27 18:06:05 +01:00
ftsgrouping,
ftsgenre,
ftscomment,
tokenize = "unicode61 remove_diacritics 0"
2018-02-27 18:06:05 +01:00
);
CREATE VIRTUAL TABLE IF NOT EXISTS playlist_items_fts_ USING fts5(
2018-02-27 18:06:05 +01:00
ftstitle,
ftsalbum,
ftsartist,
ftsalbumartist,
ftscomposer,
ftsperformer,
ftsgrouping,
ftsgenre,
ftscomment,
tokenize = "unicode61 remove_diacritics 0"
2018-02-27 18:06:05 +01:00
);
CREATE VIRTUAL TABLE IF NOT EXISTS %allsongstables_fts USING fts5(
2018-02-27 18:06:05 +01:00
ftstitle,
ftsalbum,
ftsartist,
ftsalbumartist,
ftscomposer,
ftsperformer,
ftsgrouping,
ftsgenre,
ftscomment,
tokenize = "unicode61 remove_diacritics 0"
2018-02-27 18:06:05 +01:00
);