Modrinth/apps/labrinth/migrations/20241108221437_shared-instances.sql
2024-11-08 17:42:41 -08:00

47 lines
1.4 KiB
SQL

CREATE TABLE shared_instances (
id bigint PRIMARY KEY,
creator_id bigint REFERENCES users NOT NULL,
icon_url text NOT NULL,
name text NOT NULL,
status text NOT NULL,
created timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL,
updated timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL,
include_paths text[] NOT NULL,
exclude_paths text[] NOT NULL,
);
CREATE TABLE shared_instance_invites (
id bigint PRIMARY KEY,
creator_id bigint REFERENCES users NOT NULL,
shared_instance_id bigint REFERENCES shared_instances NOT NULL,
created timestamptz DEFAULT CURRENT_TIMESTAMP NOT NULL,
expires timestamptz NULL,
last_used timestamptz NOT NULL,
max_users bigint NULL,
uses integer NOT NULL DEFAULT 0,
)
CREATE TABLE shared_instances_users (
shared_instance_id bigint REFERENCES shared_instances NOT NULL,
user_id bigint REFERENCES users NOT NULL,
PRIMARY KEY (shared_instance_id, user_id),
);
CREATE TABLE shared_instances_files (
id bigint PRIMARY KEY,
shared_instance_id bigint REFERENCES shared_instances NOT NULL,
install_path text not null,
side_type text not null,
override_id bigint REFERENCES shared_instances_overrides,
file_id bigint REFERENCES files,
);
CREATE TABLE shared_instances_overrides (
id bigint PRIMARY KEY,
size integer NOT NULL,
-- blake3 hash of file for lookup
hash bytea NOT NULL,
);