diff --git a/data/data.qrc b/data/data.qrc index 6da3f656..af00f26a 100644 --- a/data/data.qrc +++ b/data/data.qrc @@ -1,15 +1,6 @@ schema/schema.sql - schema/schema-1.sql - schema/schema-2.sql - schema/schema-3.sql - schema/schema-4.sql - schema/schema-5.sql - schema/schema-6.sql - schema/schema-7.sql - schema/schema-8.sql - schema/schema-9.sql schema/schema-10.sql schema/schema-11.sql schema/schema-12.sql diff --git a/data/schema/schema-1.sql b/data/schema/schema-1.sql deleted file mode 100644 index 1873b21a..00000000 --- a/data/schema/schema-1.sql +++ /dev/null @@ -1,3 +0,0 @@ -ALTER TABLE playlist_items ADD COLUMN internet_service TEXT; - -UPDATE schema_version SET version=1; diff --git a/data/schema/schema-2.sql b/data/schema/schema-2.sql deleted file mode 100644 index 10f6ad14..00000000 --- a/data/schema/schema-2.sql +++ /dev/null @@ -1,5 +0,0 @@ -ALTER TABLE songs ADD COLUMN lyrics TEXT; - -ALTER TABLE playlist_items ADD COLUMN lyrics TEXT; - -UPDATE schema_version SET version=2; diff --git a/data/schema/schema-3.sql b/data/schema/schema-3.sql deleted file mode 100644 index 1a74347d..00000000 --- a/data/schema/schema-3.sql +++ /dev/null @@ -1,65 +0,0 @@ -ALTER TABLE songs ADD COLUMN source INTEGER NOT NULL DEFAULT 0; - -UPDATE songs SET source = 2 WHERE source = 0; - -DROP TABLE playlist_items; - -CREATE TABLE IF NOT EXISTS playlist_items ( - - playlist INTEGER NOT NULL, - type INTEGER NOT NULL DEFAULT 0, - collection_id INTEGER, - url TEXT, - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT 0, - samplerate INTEGER NOT NULL DEFAULT 0, - bitdepth INTEGER NOT NULL DEFAULT 0, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER, - filename TEXT NOT NULL, - 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, - lastplayed INTEGER NOT NULL DEFAULT 0, - - 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 - -); - -UPDATE schema_version SET version=3; diff --git a/data/schema/schema-4.sql b/data/schema/schema-4.sql deleted file mode 100644 index b81e2154..00000000 --- a/data/schema/schema-4.sql +++ /dev/null @@ -1,205 +0,0 @@ -CREATE TABLE IF NOT EXISTS tidal_artists_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT 0, - samplerate INTEGER NOT NULL DEFAULT 0, - bitdepth INTEGER NOT NULL DEFAULT 0, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL, - filename TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - filesize INTEGER NOT NULL DEFAULT 0, - mtime INTEGER NOT NULL DEFAULT 0, - ctime INTEGER NOT NULL DEFAULT 0, - unavailable INTEGER DEFAULT 0, - - playcount INTEGER NOT NULL DEFAULT 0, - skipcount INTEGER NOT NULL DEFAULT 0, - lastplayed INTEGER NOT NULL DEFAULT 0, - - 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 - -); - -CREATE TABLE IF NOT EXISTS tidal_albums_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT 0, - samplerate INTEGER NOT NULL DEFAULT 0, - bitdepth INTEGER NOT NULL DEFAULT 0, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL, - filename TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - filesize INTEGER NOT NULL DEFAULT 0, - mtime INTEGER NOT NULL DEFAULT 0, - ctime INTEGER NOT NULL DEFAULT 0, - unavailable INTEGER DEFAULT 0, - - playcount INTEGER NOT NULL DEFAULT 0, - skipcount INTEGER NOT NULL DEFAULT 0, - lastplayed INTEGER NOT NULL DEFAULT 0, - - 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 - -); - -CREATE TABLE IF NOT EXISTS tidal_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT 0, - samplerate INTEGER NOT NULL DEFAULT 0, - bitdepth INTEGER NOT NULL DEFAULT 0, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL, - filename TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - filesize INTEGER NOT NULL DEFAULT 0, - mtime INTEGER NOT NULL DEFAULT 0, - ctime INTEGER NOT NULL DEFAULT 0, - unavailable INTEGER DEFAULT 0, - - playcount INTEGER NOT NULL DEFAULT 0, - skipcount INTEGER NOT NULL DEFAULT 0, - lastplayed INTEGER NOT NULL DEFAULT 0, - - 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 - -); - -CREATE VIRTUAL TABLE IF NOT EXISTS tidal_artists_songs_fts USING fts3( - - ftstitle, - ftsalbum, - ftsartist, - ftsalbumartist, - ftscomposer, - ftsperformer, - ftsgrouping, - ftsgenre, - ftscomment, - tokenize=unicode - -); - -CREATE VIRTUAL TABLE IF NOT EXISTS tidal_albums_songs_fts USING fts3( - - ftstitle, - ftsalbum, - ftsartist, - ftsalbumartist, - ftscomposer, - ftsperformer, - ftsgrouping, - ftsgenre, - ftscomment, - tokenize=unicode - -); - -CREATE VIRTUAL TABLE IF NOT EXISTS tidal_songs_fts USING fts3( - - ftstitle, - ftsalbum, - ftsartist, - ftsalbumartist, - ftscomposer, - ftsperformer, - ftsgrouping, - ftsgenre, - ftscomment, - tokenize=unicode - -); - -UPDATE schema_version SET version=4; diff --git a/data/schema/schema-5.sql b/data/schema/schema-5.sql deleted file mode 100644 index 4575a1c6..00000000 --- a/data/schema/schema-5.sql +++ /dev/null @@ -1,31 +0,0 @@ -ALTER TABLE songs ADD COLUMN artist_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE songs ADD COLUMN album_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE songs ADD COLUMN song_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE tidal_artists_songs ADD COLUMN artist_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE tidal_artists_songs ADD COLUMN album_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE tidal_artists_songs ADD COLUMN song_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE tidal_albums_songs ADD COLUMN artist_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE tidal_albums_songs ADD COLUMN album_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE tidal_albums_songs ADD COLUMN song_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE tidal_songs ADD COLUMN artist_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE tidal_songs ADD COLUMN album_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE tidal_songs ADD COLUMN song_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE playlist_items ADD COLUMN artist_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE playlist_items ADD COLUMN album_id INTEGER NOT NULL DEFAULT -1; - -ALTER TABLE playlist_items ADD COLUMN song_id INTEGER NOT NULL DEFAULT -1; - -UPDATE schema_version SET version=5; diff --git a/data/schema/schema-6.sql b/data/schema/schema-6.sql deleted file mode 100644 index 81a8abe2..00000000 --- a/data/schema/schema-6.sql +++ /dev/null @@ -1,73 +0,0 @@ -CREATE TABLE IF NOT EXISTS subsonic_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id INTEGER NOT NULL DEFAULT -1, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT 0, - samplerate INTEGER NOT NULL DEFAULT 0, - bitdepth INTEGER NOT NULL DEFAULT 0, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL, - filename TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - filesize INTEGER NOT NULL DEFAULT 0, - mtime INTEGER NOT NULL DEFAULT 0, - ctime INTEGER NOT NULL DEFAULT 0, - unavailable INTEGER DEFAULT 0, - - playcount INTEGER NOT NULL DEFAULT 0, - skipcount INTEGER NOT NULL DEFAULT 0, - lastplayed INTEGER NOT NULL DEFAULT 0, - - 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 - -); - -CREATE VIRTUAL TABLE IF NOT EXISTS subsonic_songs_fts USING fts3( - - ftstitle, - ftsalbum, - ftsartist, - ftsalbumartist, - ftscomposer, - ftsperformer, - ftsgrouping, - ftsgenre, - ftscomment, - tokenize=unicode - -); - -UPDATE schema_version SET version=6; diff --git a/data/schema/schema-7.sql b/data/schema/schema-7.sql deleted file mode 100644 index 72346ad0..00000000 --- a/data/schema/schema-7.sql +++ /dev/null @@ -1,217 +0,0 @@ -CREATE TABLE IF NOT EXISTS qobuz_artists_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id INTEGER NOT NULL DEFAULT -1, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT 0, - samplerate INTEGER NOT NULL DEFAULT 0, - bitdepth INTEGER NOT NULL DEFAULT 0, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL, - filename TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - filesize INTEGER NOT NULL DEFAULT 0, - mtime INTEGER NOT NULL DEFAULT 0, - ctime INTEGER NOT NULL DEFAULT 0, - unavailable INTEGER DEFAULT 0, - - playcount INTEGER NOT NULL DEFAULT 0, - skipcount INTEGER NOT NULL DEFAULT 0, - lastplayed INTEGER NOT NULL DEFAULT 0, - - 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 - -); - -CREATE TABLE IF NOT EXISTS qobuz_albums_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id INTEGER NOT NULL DEFAULT -1, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT 0, - samplerate INTEGER NOT NULL DEFAULT 0, - bitdepth INTEGER NOT NULL DEFAULT 0, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL, - filename TEXT, - filetype INTEGER NOT NULL DEFAULT 0, - filesize INTEGER NOT NULL DEFAULT 0, - mtime INTEGER NOT NULL DEFAULT 0, - ctime INTEGER NOT NULL DEFAULT 0, - unavailable INTEGER DEFAULT 0, - - playcount INTEGER NOT NULL DEFAULT 0, - skipcount INTEGER NOT NULL DEFAULT 0, - lastplayed INTEGER NOT NULL DEFAULT 0, - - 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 - -); - -CREATE TABLE IF NOT EXISTS qobuz_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id INTEGER NOT NULL DEFAULT -1, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT 0, - samplerate INTEGER NOT NULL DEFAULT 0, - bitdepth INTEGER NOT NULL DEFAULT 0, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL, - filename TEXT, - filetype INTEGER NOT NULL DEFAULT 0, - filesize INTEGER NOT NULL DEFAULT 0, - mtime INTEGER NOT NULL DEFAULT 0, - ctime INTEGER NOT NULL DEFAULT 0, - unavailable INTEGER DEFAULT 0, - - playcount INTEGER NOT NULL DEFAULT 0, - skipcount INTEGER NOT NULL DEFAULT 0, - lastplayed INTEGER NOT NULL DEFAULT 0, - - 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 - -); - -CREATE VIRTUAL TABLE IF NOT EXISTS qobuz_artists_songs_fts USING fts3( - - ftstitle, - ftsalbum, - ftsartist, - ftsalbumartist, - ftscomposer, - ftsperformer, - ftsgrouping, - ftsgenre, - ftscomment, - tokenize=unicode - -); - -CREATE VIRTUAL TABLE IF NOT EXISTS qobuz_albums_songs_fts USING fts3( - - ftstitle, - ftsalbum, - ftsartist, - ftsalbumartist, - ftscomposer, - ftsperformer, - ftsgrouping, - ftsgenre, - ftscomment, - tokenize=unicode - -); - -CREATE VIRTUAL TABLE IF NOT EXISTS qobuz_songs_fts USING fts3( - - ftstitle, - ftsalbum, - ftsartist, - ftsalbumartist, - ftscomposer, - ftsperformer, - ftsgrouping, - ftsgenre, - ftscomment, - tokenize=unicode - -); - -UPDATE schema_version SET version=7; diff --git a/data/schema/schema-8.sql b/data/schema/schema-8.sql deleted file mode 100644 index cd2c1c49..00000000 --- a/data/schema/schema-8.sql +++ /dev/null @@ -1,595 +0,0 @@ -ALTER TABLE songs RENAME TO songs_old; - -ALTER TABLE playlist_items RENAME TO playlist_items_old; - -ALTER TABLE tidal_artists_songs RENAME TO tidal_artists_songs_old; - -ALTER TABLE tidal_albums_songs RENAME TO tidal_albums_songs_old; - -ALTER TABLE tidal_songs RENAME TO tidal_songs_old; - -ALTER TABLE qobuz_artists_songs RENAME TO qobuz_artists_songs_old; - -ALTER TABLE qobuz_albums_songs RENAME TO qobuz_albums_songs_old; - -ALTER TABLE qobuz_songs RENAME TO qobuz_songs_old; - -ALTER TABLE subsonic_songs RENAME TO subsonic_songs_old; - -DROP INDEX idx_filename; - -CREATE TABLE songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id TEXT, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT -1, - samplerate INTEGER NOT NULL DEFAULT -1, - bitdepth INTEGER NOT NULL DEFAULT -1, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL DEFAULT -1, - url TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - 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, - 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 - -); - -CREATE TABLE tidal_artists_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id TEXT, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT -1, - samplerate INTEGER NOT NULL DEFAULT -1, - bitdepth INTEGER NOT NULL DEFAULT -1, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL DEFAULT -1, - url TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - 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, - 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 - -); - -CREATE TABLE tidal_albums_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id TEXT, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT -1, - samplerate INTEGER NOT NULL DEFAULT -1, - bitdepth INTEGER NOT NULL DEFAULT -1, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL DEFAULT -1, - url TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - 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, - 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 - -); - -CREATE TABLE tidal_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id TEXT, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT -1, - samplerate INTEGER NOT NULL DEFAULT -1, - bitdepth INTEGER NOT NULL DEFAULT -1, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL DEFAULT -1, - url TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - 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, - 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 - -); - -CREATE TABLE subsonic_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id TEXT, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT -1, - samplerate INTEGER NOT NULL DEFAULT -1, - bitdepth INTEGER NOT NULL DEFAULT -1, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL DEFAULT -1, - url TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - 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, - 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 - -); - -CREATE TABLE qobuz_artists_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id TEXT, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT -1, - samplerate INTEGER NOT NULL DEFAULT -1, - bitdepth INTEGER NOT NULL DEFAULT -1, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL DEFAULT -1, - url TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - 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, - 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 - -); - -CREATE TABLE qobuz_albums_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id TEXT, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT -1, - samplerate INTEGER NOT NULL DEFAULT -1, - bitdepth INTEGER NOT NULL DEFAULT -1, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL DEFAULT -1, - url TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - 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, - 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 - -); - -CREATE TABLE qobuz_songs ( - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id TEXT, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT -1, - samplerate INTEGER NOT NULL DEFAULT -1, - bitdepth INTEGER NOT NULL DEFAULT -1, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER NOT NULL DEFAULT -1, - url TEXT NOT NULL, - filetype INTEGER NOT NULL DEFAULT 0, - 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, - 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 - -); - -CREATE TABLE playlist_items ( - - playlist INTEGER NOT NULL, - type INTEGER NOT NULL DEFAULT 0, - collection_id INTEGER, - playlist_url TEXT, - - title TEXT, - album TEXT, - artist TEXT, - albumartist TEXT, - 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, - compilation INTEGER NOT NULL DEFAULT -1, - composer TEXT, - performer TEXT, - grouping TEXT, - comment TEXT, - lyrics TEXT, - - artist_id INTEGER NOT NULL DEFAULT -1, - album_id TEXT, - song_id INTEGER NOT NULL DEFAULT -1, - - beginning INTEGER NOT NULL DEFAULT 0, - length INTEGER NOT NULL DEFAULT 0, - - bitrate INTEGER NOT NULL DEFAULT -1, - samplerate INTEGER NOT NULL DEFAULT -1, - bitdepth INTEGER NOT NULL DEFAULT -1, - - source INTEGER NOT NULL DEFAULT 0, - directory_id INTEGER, - url TEXT, - 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, - 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 - -); - -INSERT INTO songs (title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path) -SELECT title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path -FROM songs_old; - -DROP TABLE songs_old; - -INSERT INTO tidal_artists_songs (title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path) -SELECT title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path -FROM tidal_artists_songs_old; - -DROP TABLE tidal_artists_songs_old; - -INSERT INTO tidal_albums_songs (title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path) -SELECT title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path -FROM tidal_albums_songs_old; - -DROP TABLE tidal_albums_songs_old; - -INSERT INTO tidal_songs (title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path) -SELECT title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path -FROM tidal_songs_old; - -DROP TABLE tidal_songs_old; - -INSERT INTO qobuz_artists_songs (title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path) -SELECT title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path -FROM qobuz_artists_songs_old; - -DROP TABLE qobuz_artists_songs_old; - -INSERT INTO qobuz_albums_songs (title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path) -SELECT title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path -FROM qobuz_albums_songs_old; - -DROP TABLE qobuz_albums_songs_old; - -INSERT INTO qobuz_songs (title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path) -SELECT title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path -FROM qobuz_songs_old; - -DROP TABLE qobuz_songs_old; - -INSERT INTO subsonic_songs (title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path) -SELECT title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path -FROM subsonic_songs_old; - -DROP TABLE subsonic_songs_old; - -INSERT INTO playlist_items (playlist, type, collection_id, playlist_url, title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path) -SELECT playlist, type, collection_id, url, title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, artist_id, album_id, song_id, beginning, length, bitrate, samplerate, bitdepth, source, directory_id, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path -FROM playlist_items_old; - -DROP TABLE playlist_items_old; - -CREATE INDEX idx_url ON songs (url); - -UPDATE schema_version SET version=8; diff --git a/data/schema/schema-9.sql b/data/schema/schema-9.sql deleted file mode 100644 index c4e803ea..00000000 --- a/data/schema/schema-9.sql +++ /dev/null @@ -1,41 +0,0 @@ -DROP TABLE %allsongstables_fts; - -DROP TABLE playlist_items_fts_; - -CREATE VIRTUAL TABLE %allsongstables_fts USING fts5( - - ftstitle, - ftsalbum, - ftsartist, - ftsalbumartist, - ftscomposer, - ftsperformer, - ftsgrouping, - ftsgenre, - ftscomment, - tokenize = "unicode61 remove_diacritics 1" - -); - -CREATE VIRTUAL TABLE playlist_items_fts_ USING fts5( - - ftstitle, - ftsalbum, - ftsartist, - ftsalbumartist, - ftscomposer, - ftsperformer, - ftsgrouping, - ftsgenre, - ftscomment, - tokenize = "unicode61 remove_diacritics 1" - -); - -INSERT INTO %allsongstables_fts (ROWID, ftstitle, ftsalbum, ftsartist, ftsalbumartist, ftscomposer, ftsperformer, ftsgrouping, ftsgenre, ftscomment) -SELECT ROWID, title, album, artist, albumartist, composer, performer, grouping, genre, comment FROM %allsongstables; - -INSERT INTO playlist_items_fts_ (ROWID, ftstitle, ftsalbum, ftsartist, ftsalbumartist, ftscomposer, ftsperformer, ftsgrouping, ftsgenre, ftscomment) -SELECT ROWID, title, album, artist, albumartist, composer, performer, grouping, genre, comment FROM playlist_items; - -UPDATE schema_version SET version=9; diff --git a/src/core/database.cpp b/src/core/database.cpp index 2d112a99..a47f18ab 100644 --- a/src/core/database.cpp +++ b/src/core/database.cpp @@ -55,6 +55,7 @@ const char *Database::kDatabaseFilename = "strawberry.db"; const int Database::kSchemaVersion = 15; +const int Database::kMinSupportedSchemaVersion = 10; const char *Database::kMagicAllSongsTables = "%allsongstables"; int Database::sNextConnectionId = 1; @@ -153,35 +154,8 @@ QSqlDatabase Database::Connect() { UpdateDatabaseSchema(0, db); } - if (SchemaVersion(&db) < 10) { - // Register unicode from unicode61 tokenizer to drop old FTS3 tables. - // We need it also to drop old devices later when loading devices. - // And that's done in a different thread after schemas are upgraded, so register it anyway. -#ifdef SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER - QVariant v = db.driver()->handle(); - if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*") == 0) { - sqlite3 *handle = *static_cast(v.data()); - if (handle) { - (void)sqlite3_db_config(handle, SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, 1, nullptr); - } - else qLog(Fatal) << "Unable to enable FTS3 tokenizer"; - } -#endif - SqlQuery get_fts_tokenizer(db); - get_fts_tokenizer.prepare("SELECT fts3_tokenizer(:name)"); - get_fts_tokenizer.BindValue(":name", "unicode61"); - if (get_fts_tokenizer.exec() && get_fts_tokenizer.next()) { - SqlQuery set_fts_tokenizer(db); - set_fts_tokenizer.prepare("SELECT fts3_tokenizer(:name, :pointer)"); - set_fts_tokenizer.BindValue(":name", "unicode"); - set_fts_tokenizer.BindValue(":pointer", get_fts_tokenizer.value(0)); - if (!set_fts_tokenizer.exec()) { - qLog(Warning) << "Couldn't register FTS3 tokenizer : " << set_fts_tokenizer.lastError(); - } - } - else { - qLog(Warning) << "Couldn't get FTS3 tokenizer : " << get_fts_tokenizer.lastError(); - } + if (SchemaVersion(&db) < kMinSupportedSchemaVersion) { + qFatal("Database schema too old."); } // Attach external databases diff --git a/src/core/database.h b/src/core/database.h index b3b819f2..5de96a70 100644 --- a/src/core/database.h +++ b/src/core/database.h @@ -61,6 +61,7 @@ class Database : public QObject { }; static const int kSchemaVersion; + static const int kMinSupportedSchemaVersion; static const char *kDatabaseFilename; static const char *kMagicAllSongsTables;