feat: season-pack vs per-episode grab selection (#94)
This commit was merged in pull request #94.
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
-- A grab may target a whole season: one season-pack torrent satisfies every
|
||||
-- episode in it (DESIGN.md §13 phase 6). SQLite cannot alter a CHECK, so the
|
||||
-- table is rebuilt.
|
||||
CREATE TABLE grabs_new (
|
||||
id INTEGER PRIMARY KEY,
|
||||
release_id INTEGER NOT NULL REFERENCES releases (id),
|
||||
target_kind TEXT NOT NULL CHECK (target_kind IN ('movie', 'episode', 'season')),
|
||||
target_id INTEGER NOT NULL,
|
||||
infohash TEXT NOT NULL UNIQUE,
|
||||
state TEXT NOT NULL DEFAULT 'sent'
|
||||
CHECK (state IN ('sent', 'downloaded', 'imported', 'failed')),
|
||||
grabbed_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
|
||||
imported_at TEXT
|
||||
) STRICT;
|
||||
|
||||
INSERT INTO grabs_new (id, release_id, target_kind, target_id, infohash, state, grabbed_at, imported_at)
|
||||
SELECT id, release_id, target_kind, target_id, infohash, state, grabbed_at, imported_at FROM grabs;
|
||||
|
||||
DROP TABLE grabs;
|
||||
ALTER TABLE grabs_new RENAME TO grabs;
|
||||
|
||||
CREATE INDEX grabs_state ON grabs (state);
|
||||
CREATE INDEX grabs_target ON grabs (target_kind, target_id);
|
||||
Reference in New Issue
Block a user