@@ -0,0 +1,18 @@
|
||||
CREATE TABLE songs (
|
||||
id TEXT PRIMARY KEY NOT NULL CHECK(length(trim(id)) BETWEEN 1 AND 120),
|
||||
title TEXT NOT NULL CHECK(length(trim(title)) BETWEEN 1 AND 200),
|
||||
composer TEXT NOT NULL DEFAULT '',
|
||||
source_json TEXT NOT NULL CHECK(json_valid(source_json)),
|
||||
created_at_ms INTEGER NOT NULL CHECK(created_at_ms >= 0),
|
||||
updated_at_ms INTEGER NOT NULL CHECK(updated_at_ms >= created_at_ms)
|
||||
) STRICT;
|
||||
-- vamp-statement
|
||||
CREATE TABLE page_state (
|
||||
id INTEGER PRIMARY KEY CHECK(id = 1),
|
||||
song_id TEXT NOT NULL CHECK(length(trim(song_id)) BETWEEN 1 AND 120),
|
||||
page_index INTEGER NOT NULL CHECK(page_index >= 0),
|
||||
next_count INTEGER NOT NULL DEFAULT 0 CHECK(next_count >= 0),
|
||||
previous_count INTEGER NOT NULL DEFAULT 0 CHECK(previous_count >= 0),
|
||||
last_command TEXT NOT NULL DEFAULT '',
|
||||
updated_at_ms INTEGER NOT NULL CHECK(updated_at_ms >= 0)
|
||||
) STRICT;
|
||||
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE songs ADD COLUMN part TEXT NOT NULL DEFAULT '';
|
||||
-- vamp-statement
|
||||
ALTER TABLE songs ADD COLUMN source_path TEXT NOT NULL DEFAULT '';
|
||||
-- vamp-statement
|
||||
CREATE INDEX idx_songs_title_part ON songs(title, part);
|
||||
@@ -0,0 +1,14 @@
|
||||
ALTER TABLE songs ADD COLUMN key_signature TEXT NOT NULL DEFAULT '';
|
||||
-- vamp-statement
|
||||
CREATE TABLE practice_exercises (
|
||||
id TEXT PRIMARY KEY NOT NULL CHECK(length(trim(id)) BETWEEN 1 AND 120),
|
||||
title TEXT NOT NULL CHECK(length(trim(title)) BETWEEN 1 AND 200),
|
||||
composer TEXT NOT NULL DEFAULT '',
|
||||
key_signature TEXT NOT NULL DEFAULT 'C',
|
||||
source_json TEXT NOT NULL CHECK(json_valid(source_json)),
|
||||
source_path TEXT NOT NULL DEFAULT '',
|
||||
created_at_ms INTEGER NOT NULL CHECK(created_at_ms >= 0),
|
||||
updated_at_ms INTEGER NOT NULL CHECK(updated_at_ms >= created_at_ms)
|
||||
) STRICT;
|
||||
-- vamp-statement
|
||||
CREATE INDEX idx_practice_exercises_title ON practice_exercises(title);
|
||||
@@ -0,0 +1,9 @@
|
||||
ALTER TABLE practice_exercises ADD COLUMN practice_type_id TEXT NOT NULL DEFAULT 'general';
|
||||
-- vamp-statement
|
||||
ALTER TABLE practice_exercises ADD COLUMN practice_type_title TEXT NOT NULL DEFAULT 'General Practice';
|
||||
-- vamp-statement
|
||||
ALTER TABLE practice_exercises ADD COLUMN lesson_group_id TEXT NOT NULL DEFAULT 'general';
|
||||
-- vamp-statement
|
||||
ALTER TABLE practice_exercises ADD COLUMN lesson_group_title TEXT NOT NULL DEFAULT 'General';
|
||||
-- vamp-statement
|
||||
CREATE INDEX idx_practice_exercises_hierarchy ON practice_exercises(practice_type_id, lesson_group_id, source_path, title);
|
||||
Reference in New Issue
Block a user