2026-02-19 10:21:27 +00:00
|
|
|
CREATE TABLE users (
|
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
|
username TEXT NOT NULL,
|
|
|
|
|
password TEXT NOT NULL
|
|
|
|
|
);
|
|
|
|
|
CREATE UNIQUE INDEX idx_users_username ON users (username);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE sites (
|
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
|
owner_id INTEGER NOT NULL,
|
|
|
|
|
title TEXT NOT NULL,
|
|
|
|
|
tagline TEXT NOT NULL,
|
|
|
|
|
|
|
|
|
|
FOREIGN KEY (owner_id) REFERENCES users (id) ON DELETE CASCADE
|
|
|
|
|
);
|
2026-02-19 11:29:44 +00:00
|
|
|
CREATE INDEX idx_site_owner ON sites (owner_id);
|
2026-02-19 10:21:27 +00:00
|
|
|
|
|
|
|
|
CREATE TABLE publish_targets (
|
2026-02-19 11:29:44 +00:00
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
|
site_id INTEGER NOT NULL,
|
|
|
|
|
target_type INTEGER NOT NULL,
|
|
|
|
|
base_url TEXT NOT NULL,
|
|
|
|
|
target_ref TEXT NOT NULL,
|
|
|
|
|
target_key TEXT NOT NULL
|
2026-02-19 10:21:27 +00:00
|
|
|
);
|
|
|
|
|
CREATE INDEX idx_publish_targets_site ON publish_targets (site_id);
|
|
|
|
|
|
|
|
|
|
CREATE TABLE posts (
|
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
|
site_id INTEGER NOT NULL,
|
|
|
|
|
guid TEXT NOT NULL,
|
|
|
|
|
title TEXT NOT NULL,
|
|
|
|
|
body TEXT NOT NULL,
|
|
|
|
|
slug TEXT NOT NULL,
|
|
|
|
|
created_at INTEGER NOT NULL,
|
|
|
|
|
published_at INTEGER NOT NULL
|
|
|
|
|
);
|
|
|
|
|
CREATE INDEX idx_post_site ON posts (site_id);
|