add docker compose

This commit is contained in:
shooter-dev committed 2026-10-08 06:23:03 +02:00
1 parent 88db93b07f
commit f22f0f2ccc
14 files changed
+33251

No files matched your search

+154
View File
@@ -0,0 +1,154 @@
-- Source unique de creation des tables de la base booksync.
CREATE TABLE IF NOT EXISTS "AUTHORS" (
id VARCHAR(36) NOT NULL,
name VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
tasks_count INTEGER NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS "JOBS" (
id VARCHAR(36) NOT NULL,
title VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS "KINDS" (
id VARCHAR(36) NOT NULL,
name VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS "PUBLISHERS" (
id VARCHAR(36) NOT NULL,
title VARCHAR(500) NOT NULL,
closed BOOLEAN NOT NULL,
editions_count INTEGER NOT NULL,
no_amazon BOOLEAN NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS "SERIES_TYPES" (
id VARCHAR(36) NOT NULL,
title VARCHAR(255) NOT NULL,
to_display BOOLEAN,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS "BOX_EDITIONS" (
id VARCHAR(36) NOT NULL,
title VARCHAR(500) NOT NULL,
publisher_id VARCHAR(36) NOT NULL,
boxes_count INTEGER NOT NULL,
adult_content BOOLEAN NOT NULL,
box_follow_editions_count INTEGER NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY(publisher_id) REFERENCES "PUBLISHERS" (id)
);
CREATE TABLE IF NOT EXISTS "SERIES" (
id VARCHAR(36) NOT NULL,
title VARCHAR(500) NOT NULL,
type_id VARCHAR(36),
adult_content BOOLEAN,
editions_count INTEGER,
tasks_count INTEGER,
PRIMARY KEY (id),
FOREIGN KEY(type_id) REFERENCES "SERIES_TYPES" (id)
);
CREATE TABLE IF NOT EXISTS "BOXES" (
id VARCHAR(36) NOT NULL,
title VARCHAR(500) NOT NULL,
number INTEGER NOT NULL,
release_date DATE,
isbn VARCHAR(32),
asin VARCHAR(32),
commercial_stop BOOLEAN NOT NULL,
box_edition_id VARCHAR(36) NOT NULL,
box_possessions_count INTEGER NOT NULL,
image_url TEXT,
content TEXT,
PRIMARY KEY (id),
FOREIGN KEY(box_edition_id) REFERENCES "BOX_EDITIONS" (id)
);
CREATE TABLE IF NOT EXISTS "EDITIONS" (
id VARCHAR(36) NOT NULL,
title VARCHAR(500),
series_id VARCHAR(36) NOT NULL,
publisher_id VARCHAR(36) NOT NULL,
parent_edition_id VARCHAR(36),
volumes_count INTEGER NOT NULL,
last_volume_number INTEGER,
commercial_stop BOOLEAN NOT NULL,
not_finished BOOLEAN NOT NULL,
follow_editions_count INTEGER NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY(series_id) REFERENCES "SERIES" (id),
FOREIGN KEY(publisher_id) REFERENCES "PUBLISHERS" (id),
FOREIGN KEY(parent_edition_id) REFERENCES "EDITIONS" (id)
);
CREATE TABLE IF NOT EXISTS "SERIES_KINDS" (
series_id VARCHAR(36) NOT NULL,
kind_id VARCHAR(36) NOT NULL,
PRIMARY KEY (series_id, kind_id),
FOREIGN KEY(series_id) REFERENCES "SERIES" (id) ON DELETE CASCADE,
FOREIGN KEY(kind_id) REFERENCES "KINDS" (id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "TASKS" (
id VARCHAR(36) NOT NULL,
series_id VARCHAR(36) NOT NULL,
author_id VARCHAR(36),
job_id VARCHAR(36),
PRIMARY KEY (id),
FOREIGN KEY(series_id) REFERENCES "SERIES" (id),
FOREIGN KEY(author_id) REFERENCES "AUTHORS" (id),
FOREIGN KEY(job_id) REFERENCES "JOBS" (id)
);
CREATE TABLE IF NOT EXISTS "VOLUMES" (
id VARCHAR(36) NOT NULL,
title VARCHAR(500),
number INTEGER NOT NULL,
release_date DATE,
isbn VARCHAR(32),
asin VARCHAR(32),
edition_id VARCHAR(36) NOT NULL,
possessions_count INTEGER NOT NULL,
not_sold BOOLEAN NOT NULL,
image_url TEXT,
nb_pages INTEGER,
content TEXT,
PRIMARY KEY (id),
FOREIGN KEY(edition_id) REFERENCES "EDITIONS" (id)
);
CREATE TABLE IF NOT EXISTS "BOX_VOLUMES" (
id VARCHAR(36) NOT NULL,
box_id VARCHAR(36) NOT NULL,
volume_id VARCHAR(36) NOT NULL,
included BOOLEAN NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY(box_id) REFERENCES "BOXES" (id),
FOREIGN KEY(volume_id) REFERENCES "VOLUMES" (id)
);
CREATE TABLE IF NOT EXISTS "VOLUME_POSSESSION_HISTORY" (
id_volume VARCHAR(36) NOT NULL,
observed_at TIMESTAMP WITH TIME ZONE NOT NULL,
possessions_count INTEGER NOT NULL,
PRIMARY KEY (id_volume, observed_at),
FOREIGN KEY(id_volume) REFERENCES "VOLUMES" (id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "BOX_POSSESSION_HISTORY" (
id_box VARCHAR(36) NOT NULL,
observed_at TIMESTAMP WITH TIME ZONE NOT NULL,
box_possessions_count INTEGER NOT NULL,
PRIMARY KEY (id_box, observed_at),
FOREIGN KEY(id_box) REFERENCES "BOXES" (id) ON DELETE CASCADE
);