mirror of
https://github.com/hcengineering/platform.git
synced 2025-05-11 01:40:32 +00:00
40 lines
1.2 KiB
SQL
40 lines
1.2 KiB
SQL
|
|
CREATE SCHEMA IF NOT EXISTS blob;
|
|
|
|
-- B L O B
|
|
|
|
CREATE TYPE IF NOT EXISTS blob.location AS ENUM ('eu', 'weur', 'eeur', 'wnam', 'enam', 'apac');
|
|
|
|
\echo "Creating blob.data..."
|
|
CREATE TABLE IF NOT EXISTS blob.data (
|
|
hash UUID NOT NULL,
|
|
location blob.location NOT NULL,
|
|
size INT8 NOT NULL,
|
|
filename STRING(255) NOT NULL,
|
|
type STRING(255) NOT NULL,
|
|
CONSTRAINT pk_data PRIMARY KEY (hash, location)
|
|
);
|
|
|
|
\echo "Creating blob.blob..."
|
|
CREATE TABLE IF NOT EXISTS blob.blob (
|
|
workspace STRING(255) NOT NULL,
|
|
name STRING(255) NOT NULL,
|
|
hash UUID NOT NULL,
|
|
location blob.location NOT NULL,
|
|
parent STRING(255) DEFAULT NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
deleted_at TIMESTAMP DEFAULT NULL,
|
|
CONSTRAINT pk_blob PRIMARY KEY (workspace, name),
|
|
CONSTRAINT fk_data FOREIGN KEY (hash, location) REFERENCES blob.data (hash, location),
|
|
CONSTRAINT fk_parent FOREIGN KEY (workspace, parent) REFERENCES blob.blob (workspace, name) ON DELETE CASCADE
|
|
);
|
|
|
|
\echo "Creating blob.meta..."
|
|
CREATE TABLE IF NOT EXISTS blob.meta (
|
|
workspace STRING(255) NOT NULL,
|
|
name STRING(255) NOT NULL,
|
|
meta JSONB NOT NULL,
|
|
CONSTRAINT pk_meta PRIMARY KEY (workspace, name),
|
|
CONSTRAINT fk_blob FOREIGN KEY (workspace, name) REFERENCES blob.blob (workspace, name)
|
|
);
|