Feat: add POSIX DB projection
This commit is contained in:
45
Backend/db/migrations/000004_posix_nodes.sql
Normal file
45
Backend/db/migrations/000004_posix_nodes.sql
Normal file
@@ -0,0 +1,45 @@
|
||||
-- +goose Up
|
||||
|
||||
CREATE TYPE posix_node_kind AS ENUM ('directory', 'file');
|
||||
|
||||
CREATE TABLE IF NOT EXISTS posix_nodes (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
path TEXT NOT NULL UNIQUE,
|
||||
parent_path TEXT,
|
||||
name TEXT NOT NULL,
|
||||
depth INTEGER NOT NULL,
|
||||
node_kind posix_node_kind NOT NULL,
|
||||
logical_type TEXT NOT NULL DEFAULT 'generic',
|
||||
file_role TEXT,
|
||||
resource_id TEXT,
|
||||
resource_name TEXT,
|
||||
resource_slug TEXT,
|
||||
installation_id TEXT,
|
||||
organization_id TEXT,
|
||||
organization_slug TEXT,
|
||||
department_slug TEXT,
|
||||
team_slug TEXT,
|
||||
project_slug TEXT,
|
||||
personal_slug TEXT,
|
||||
content_json JSONB,
|
||||
size_bytes BIGINT NOT NULL DEFAULT 0,
|
||||
checksum TEXT,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_posix_nodes_parent_path ON posix_nodes (parent_path);
|
||||
CREATE INDEX IF NOT EXISTS idx_posix_nodes_logical_type ON posix_nodes (logical_type);
|
||||
CREATE INDEX IF NOT EXISTS idx_posix_nodes_project_slug ON posix_nodes (project_slug);
|
||||
CREATE INDEX IF NOT EXISTS idx_posix_nodes_department_slug ON posix_nodes (department_slug);
|
||||
CREATE INDEX IF NOT EXISTS idx_posix_nodes_team_slug ON posix_nodes (team_slug);
|
||||
|
||||
-- +goose Down
|
||||
|
||||
DROP INDEX IF EXISTS idx_posix_nodes_team_slug;
|
||||
DROP INDEX IF EXISTS idx_posix_nodes_department_slug;
|
||||
DROP INDEX IF EXISTS idx_posix_nodes_project_slug;
|
||||
DROP INDEX IF EXISTS idx_posix_nodes_logical_type;
|
||||
DROP INDEX IF EXISTS idx_posix_nodes_parent_path;
|
||||
DROP TABLE IF EXISTS posix_nodes;
|
||||
DROP TYPE IF EXISTS posix_node_kind;
|
||||
Reference in New Issue
Block a user