Files
tesseract/internal/migration/sql/1_initial.up.sql

59 lines
1.7 KiB
SQL

CREATE TABLE IF NOT EXISTS workspaces
(
id TEXT NOT NULL UNIQUE,
name TEXT NOT NULL UNIQUE,
container_id TEXT NOT NULL,
image_tag TEXT NOT NULL,
created_at TEXT NOT NULL,
runtime TEXT NOT NULL,
CONSTRAINT pk_workspaces PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS templates
(
id TEXT NOT NULL UNIQUE,
name TEXT NOT NULL UNIQUE,
description TEXT NOT NULL,
created_on TEXT NOT NULL,
last_modified_on TEXT NOT NULL,
is_built INTEGER NOT NULL,
CONSTRAINT pk_templates PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS template_files
(
template_id TEXT NOT NULL,
file_path TEXT NOT NULL,
content BLOB NOT NULL,
CONSTRAINT pk_template_files PRIMARY KEY (template_id, file_path),
CONSTRAINT fk_template_template_files FOREIGN KEY (template_id) REFERENCES templates (id)
ON UPDATE CASCADE
ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS template_images
(
template_id TEXT NOT NULL,
image_tag TEXT NOT NULL,
image_id TEXT NOT NULL,
CONSTRAINT pk_template_images PRIMARY KEY (template_id, image_tag, image_id),
CONSTRAINT fk_template_template_images FOREIGN KEY (template_id) REFERENCES templates (id)
ON UPDATE CASCADE
ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS port_mappings
(
workspace_id TEXT NOT NULL,
container_port INTEGER NOT NULL,
subdomain TEXT,
CONSTRAINT pk_port_mappings PRIMARY KEY (workspace_id, container_port, subdomain),
CONSTRAINT fk_workspace_port_mappings FOREIGN KEY (workspace_id) REFERENCES workspaces (id)
ON UPDATE CASCADE
ON DELETE CASCADE
)