Les choses sérieuses commencent
This commit is contained in:
parent
7a9fe18463
commit
c63f62721b
41 changed files with 1270 additions and 0 deletions
68
schema.sql
Normal file
68
schema.sql
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
CREATE TABLE IF NOT EXISTS upstreams (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL UNIQUE,
|
||||
type TEXT CHECK(type IN ('http', 'github', 'sourceforge')) NOT NULL,
|
||||
url TEXT, -- Base URL ou GitHub repo ou flux RSS
|
||||
pattern TEXT DEFAULT NULL, -- Regex pour HTTP ou pattern GitHub si besoin
|
||||
file TEXT, -- Optionnel : fichier final ex: gcc-${version}.tar.xz
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS versions (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
upstream_id INTEGER NOT NULL,
|
||||
version TEXT,
|
||||
url TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (upstream_id) REFERENCES upstreams(id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS packages (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT UNIQUE,
|
||||
upstream_id INTEGER,
|
||||
current_version_id INTEGER,
|
||||
FOREIGN KEY (upstream_id) REFERENCES upstreams(id),
|
||||
FOREIGN KEY (current_version_id) REFERENCES versions(id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS depends (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
package_id INTEGER NOT NULL,
|
||||
depends_on INTEGER NOT NULL,
|
||||
type TEXT CHECK(type IN ('runtime', 'build', 'check')),
|
||||
FOREIGN KEY (package_id) REFERENCES packages(id),
|
||||
FOREIGN KEY (depends_on) REFERENCES packages(id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS builds (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
package_id INTEGER NOT NULL,
|
||||
version TEXT NOT NULL,
|
||||
revision TEXT NOT NULL,
|
||||
status TEXT CHECK(status IN ('success', 'fail', 'pending')),
|
||||
built_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
log_path TEXT,
|
||||
FOREIGN KEY (package_id) REFERENCES packages(id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS repo (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
package_id INTEGER NOT NULL,
|
||||
version TEXT NOT NULL,
|
||||
path TEXT,
|
||||
added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (package_id) REFERENCES packages(id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS notifications (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL,
|
||||
version TEXT NOT NULL,
|
||||
url TEXT NOT NULL,
|
||||
status TEXT DEFAULT 'pending', -- 'pending', 'sent', 'failed'
|
||||
last_attempt TIMESTAMP, -- Pour savoir quand on a tenté la dernière fois
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX idx_upstream_version ON versions(upstream_id, version);
|
||||
Loading…
Add table
Add a link
Reference in a new issue