mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
fix: Sometimes I just hate to work on SQL, I blame Android's outdated SQLite
This commit is contained in:
parent
3132969192
commit
c589bceb84
1 changed files with 101 additions and 7 deletions
|
@ -1,4 +1,5 @@
|
|||
import kotlin.Boolean;
|
||||
import kotlin.Float;
|
||||
import kotlin.Long;
|
||||
|
||||
CREATE TABLE extension_repos (
|
||||
|
@ -9,13 +10,14 @@ CREATE TABLE extension_repos (
|
|||
signing_key_fingerprint TEXT UNIQUE NOT NULL
|
||||
);
|
||||
|
||||
--- << Rename hideTitle to hide_title
|
||||
--- >> Rename hideTitle to hide_title
|
||||
DROP INDEX IF EXISTS mangas_url_index;
|
||||
DROP INDEX IF EXISTS library_favorite_index;
|
||||
DROP INDEX IF EXISTS chapters_manga_id_index;
|
||||
DROP INDEX IF EXISTS chapters_unread_by_manga_index;
|
||||
DROP INDEX IF EXISTS history_history_chapter_id_index;
|
||||
|
||||
ALTER TABLE mangas
|
||||
RENAME TO mangas_tmp;
|
||||
|
||||
ALTER TABLE mangas RENAME TO mangas_tmp;
|
||||
CREATE TABLE mangas(
|
||||
_id INTEGER NOT NULL PRIMARY KEY,
|
||||
source INTEGER NOT NULL,
|
||||
|
@ -45,8 +47,100 @@ SELECT
|
|||
initialized, viewer, hideTitle, chapter_flags, date_added, filtered_scanlators, update_strategy
|
||||
FROM mangas_tmp;
|
||||
|
||||
DROP TABLE mangas_tmp;
|
||||
ALTER TABLE chapters RENAME TO chapters_tmp;
|
||||
CREATE TABLE chapters(
|
||||
_id INTEGER NOT NULL PRIMARY KEY,
|
||||
manga_id INTEGER NOT NULL,
|
||||
url TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
scanlator TEXT,
|
||||
read INTEGER AS Boolean NOT NULL,
|
||||
bookmark INTEGER AS Boolean NOT NULL,
|
||||
last_page_read INTEGER NOT NULL,
|
||||
pages_left INTEGER NOT NULL,
|
||||
chapter_number REAL AS Float NOT NULL,
|
||||
source_order INTEGER NOT NULL,
|
||||
date_fetch INTEGER AS Long NOT NULL,
|
||||
date_upload INTEGER AS Long NOT NULL,
|
||||
FOREIGN KEY(manga_id) REFERENCES mangas (_id)
|
||||
ON DELETE CASCADE
|
||||
);
|
||||
INSERT INTO chapters
|
||||
(_id, manga_id, url, name, scanlator, read, bookmark, last_page_read, pages_left, chapter_number, source_order,
|
||||
date_fetch, date_upload)
|
||||
SELECT
|
||||
_id, manga_id, url, name, scanlator, read, bookmark, last_page_read, pages_left, chapter_number, source_order,
|
||||
date_fetch, date_upload
|
||||
FROM chapters_tmp;
|
||||
|
||||
CREATE INDEX mangas_url_index ON mangas(url);
|
||||
ALTER TABLE history RENAME TO history_tmp;
|
||||
CREATE TABLE history(
|
||||
history_id INTEGER NOT NULL PRIMARY KEY,
|
||||
history_chapter_id INTEGER NOT NULL UNIQUE,
|
||||
history_last_read INTEGER AS Long,
|
||||
history_time_read INTEGER AS Long,
|
||||
FOREIGN KEY(history_chapter_id) REFERENCES chapters (_id)
|
||||
ON DELETE CASCADE
|
||||
);
|
||||
|
||||
INSERT INTO history
|
||||
(history_id, history_chapter_id, history_last_read, history_time_read)
|
||||
SELECT
|
||||
history_id, history_chapter_id, history_last_read, history_time_read
|
||||
FROM history_tmp;
|
||||
|
||||
ALTER TABLE mangas_categories RENAME TO mangas_categories_tmp;
|
||||
CREATE TABLE mangas_categories(
|
||||
_id INTEGER NOT NULL PRIMARY KEY,
|
||||
manga_id INTEGER NOT NULL,
|
||||
category_id INTEGER NOT NULL,
|
||||
FOREIGN KEY(category_id) REFERENCES categories (_id)
|
||||
ON DELETE CASCADE,
|
||||
FOREIGN KEY(manga_id) REFERENCES mangas (_id)
|
||||
ON DELETE CASCADE
|
||||
);
|
||||
INSERT INTO mangas_categories
|
||||
(_id, manga_id, category_id)
|
||||
SELECT
|
||||
_id, manga_id, category_id
|
||||
FROM mangas_categories_tmp;
|
||||
|
||||
ALTER TABLE manga_sync RENAME TO manga_sync_tmp;
|
||||
CREATE TABLE manga_sync(
|
||||
_id INTEGER NOT NULL PRIMARY KEY,
|
||||
manga_id INTEGER NOT NULL,
|
||||
sync_id INTEGER NOT NULL,
|
||||
remote_id INTEGER NOT NULL,
|
||||
library_id INTEGER,
|
||||
title TEXT NOT NULL,
|
||||
last_chapter_read REAL NOT NULL,
|
||||
total_chapters INTEGER NOT NULL,
|
||||
status INTEGER NOT NULL,
|
||||
score REAL AS Float NOT NULL,
|
||||
remote_url TEXT NOT NULL,
|
||||
start_date INTEGER AS Long NOT NULL,
|
||||
finish_date INTEGER AS Long NOT NULL,
|
||||
UNIQUE (manga_id, sync_id) ON CONFLICT REPLACE,
|
||||
FOREIGN KEY(manga_id) REFERENCES mangas (_id)
|
||||
ON DELETE CASCADE
|
||||
);
|
||||
INSERT INTO manga_sync
|
||||
(_id, manga_id, sync_id, remote_id, library_id, title, last_chapter_read, total_chapters, status, score, remote_url,
|
||||
start_date, finish_date)
|
||||
SELECT
|
||||
_id, manga_id, sync_id, remote_id, library_id, title, last_chapter_read, total_chapters, status, score, remote_url,
|
||||
start_date, finish_date
|
||||
FROM manga_sync_tmp;
|
||||
|
||||
CREATE INDEX chapters_manga_id_index ON chapters(manga_id);
|
||||
CREATE INDEX chapters_unread_by_manga_index ON chapters(manga_id, read) WHERE read = 0;
|
||||
CREATE INDEX history_history_chapter_id_index ON history(history_chapter_id);
|
||||
CREATE INDEX library_favorite_index ON mangas(favorite) WHERE favorite = 1;
|
||||
--- >> Rename hideTitle to hide_title
|
||||
CREATE INDEX mangas_url_index ON mangas(url);
|
||||
|
||||
DROP TABLE IF EXISTS mangas_tmp;
|
||||
DROP TABLE IF EXISTS chapters_tmp;
|
||||
DROP TABLE IF EXISTS history_tmp;
|
||||
DROP TABLE IF EXISTS mangas_categories_tmp;
|
||||
DROP TABLE IF EXISTS manga_sync_tmp;
|
||||
--- << Rename hideTitle to hide_title
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue