2025-01-27 03:23:54 +00:00
|
|
|
CREATE TYPE post_state AS ENUM (
|
|
|
|
'draft',
|
|
|
|
'published'
|
|
|
|
);
|
|
|
|
|
2025-01-27 04:45:53 +00:00
|
|
|
CREATE TYPE target_role AS ENUM (
|
|
|
|
'production'
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TYPE target_type AS ENUM (
|
|
|
|
'netlify'
|
|
|
|
);
|
|
|
|
|
2025-01-26 20:39:19 +00:00
|
|
|
CREATE TABLE site (
|
|
|
|
id BIGSERIAL NOT NULL PRIMARY KEY,
|
2025-01-27 03:23:54 +00:00
|
|
|
name TEXT NOT NULL UNIQUE,
|
|
|
|
title TEXT NOT NULL,
|
|
|
|
url TEXT NOT NULL,
|
|
|
|
theme TEXT NOT NULL,
|
|
|
|
props JSON NOT NULL
|
2025-01-26 20:39:19 +00:00
|
|
|
);
|
2025-01-27 03:23:54 +00:00
|
|
|
|
|
|
|
CREATE TABLE post (
|
|
|
|
id BIGSERIAL NOT NULL PRIMARY KEY,
|
|
|
|
site_id BIGINT NOT NULL,
|
|
|
|
title TEXT,
|
|
|
|
body TEXT NOT NULL,
|
|
|
|
state post_state NOT NULL,
|
|
|
|
props JSON NOT NULL,
|
|
|
|
post_date TIMESTAMP WITH TIME ZONE,
|
|
|
|
created_at TIMESTAMP NOT NULL,
|
|
|
|
|
2025-01-27 04:45:53 +00:00
|
|
|
FOREIGN KEY (site_id) REFERENCES site (id)
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE publish_target (
|
|
|
|
id BIGSERIAL NOT NULL PRIMARY KEY,
|
|
|
|
site_id BIGINT NOT NULL,
|
|
|
|
role target_role NOT NULL,
|
|
|
|
target_type target_type NOT NULL,
|
|
|
|
url TEXT NOT NULL,
|
|
|
|
target_ref TEXT NOT NULL,
|
|
|
|
|
|
|
|
FOREIGN KEY (site_id) REFERENCES site (id)
|
2025-01-27 03:23:54 +00:00
|
|
|
);
|