mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 08:09:18 +02:00
feat: implement SQLite backup & data integrity plan (Phases 2-4)
This commit is contained in:
@@ -84,7 +84,8 @@ INSERT OR IGNORE INTO finality_types (name) VALUES
|
||||
CREATE TABLE IF NOT EXISTS languages (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL UNIQUE,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at TEXT DEFAULT NULL
|
||||
);
|
||||
|
||||
INSERT OR IGNORE INTO languages (name) VALUES
|
||||
@@ -112,7 +113,8 @@ INSERT OR IGNORE INTO format_types (name) VALUES
|
||||
CREATE TABLE IF NOT EXISTS tags (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL UNIQUE,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at TEXT DEFAULT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_tags_name ON tags(name);
|
||||
@@ -200,6 +202,9 @@ CREATE TABLE IF NOT EXISTS theses (
|
||||
-- CC2r acceptance (collected in student form)
|
||||
cc2r BOOLEAN DEFAULT 0,
|
||||
|
||||
-- Soft delete support
|
||||
deleted_at TEXT DEFAULT NULL,
|
||||
|
||||
-- Timestamps
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
@@ -538,11 +543,12 @@ LEFT JOIN authors a ON ta.author_id = a.id
|
||||
LEFT JOIN thesis_supervisors ts ON t.id = ts.thesis_id
|
||||
LEFT JOIN supervisors s ON ts.supervisor_id = s.id
|
||||
LEFT JOIN thesis_languages tl ON t.id = tl.thesis_id
|
||||
LEFT JOIN languages l ON tl.language_id = l.id
|
||||
LEFT JOIN languages l ON tl.language_id = l.id AND l.deleted_at IS NULL
|
||||
LEFT JOIN thesis_formats tf ON t.id = tf.thesis_id
|
||||
LEFT JOIN format_types fmt ON tf.format_id = fmt.id
|
||||
LEFT JOIN thesis_tags tt ON t.id = tt.thesis_id
|
||||
LEFT JOIN tags tg ON tt.tag_id = tg.id
|
||||
LEFT JOIN tags tg ON tt.tag_id = tg.id AND tg.deleted_at IS NULL
|
||||
WHERE t.deleted_at IS NULL
|
||||
GROUP BY t.id;
|
||||
|
||||
-- Published theses only (for public view)
|
||||
|
||||
Reference in New Issue
Block a user