Files
DoGaMa-serv/migrations/0002_catalog_instances.sql
T

41 lines
1.3 KiB
SQL

CREATE TABLE templates (
id TEXT PRIMARY KEY,
origin TEXT NOT NULL,
trust_status TEXT NOT NULL,
active_version TEXT NOT NULL,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE TABLE template_versions (
template_id TEXT NOT NULL REFERENCES templates(id) ON DELETE RESTRICT,
version TEXT NOT NULL,
schema_version INTEGER NOT NULL,
canonical_yaml TEXT NOT NULL,
digest TEXT NOT NULL,
game_id TEXT NOT NULL,
game_name TEXT NOT NULL,
description TEXT NOT NULL,
created_at TEXT NOT NULL,
PRIMARY KEY (template_id, version),
UNIQUE (digest)
);
CREATE TABLE instances (
id TEXT PRIMARY KEY,
slug TEXT NOT NULL UNIQUE,
display_name TEXT NOT NULL,
template_id TEXT NOT NULL,
template_version TEXT NOT NULL,
template_digest TEXT NOT NULL,
revision INTEGER NOT NULL CHECK (revision >= 1),
lifecycle_state TEXT NOT NULL CHECK (lifecycle_state = 'draft'),
preview_json TEXT NOT NULL,
plan_digest TEXT NOT NULL,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
FOREIGN KEY (template_id, template_version) REFERENCES template_versions(template_id, version) ON DELETE RESTRICT
);
CREATE INDEX instances_template_idx ON instances(template_id, template_version);