74 lines
2.5 KiB
SQL
74 lines
2.5 KiB
SQL
-- VaultDrop 012 down: revert to V1 schema
|
|
DROP FUNCTION IF EXISTS resolve_effective_role;
|
|
|
|
DROP TABLE IF EXISTS sync_queue CASCADE;
|
|
DROP TABLE IF EXISTS retention_policies CASCADE;
|
|
DROP TABLE IF EXISTS rebac_relations CASCADE;
|
|
DROP TABLE IF EXISTS resource_placements CASCADE;
|
|
DROP TABLE IF EXISTS resource_variants CASCADE;
|
|
DROP TABLE IF EXISTS resource_tags CASCADE;
|
|
DROP TABLE IF EXISTS refresh_tokens CASCADE;
|
|
DROP TABLE IF EXISTS storage_locations CASCADE;
|
|
DROP TABLE IF EXISTS resources CASCADE;
|
|
DROP TABLE IF EXISTS tags CASCADE;
|
|
DROP TABLE IF EXISTS users CASCADE;
|
|
|
|
-- Restore V1 tables
|
|
CREATE TABLE users (
|
|
id TEXT PRIMARY KEY NOT NULL DEFAULT gen_random_uuid(),
|
|
username TEXT NOT NULL UNIQUE,
|
|
password_hash TEXT NOT NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE tags (
|
|
id TEXT PRIMARY KEY NOT NULL DEFAULT gen_random_uuid(),
|
|
parent_tag_id TEXT,
|
|
tag_name TEXT NOT NULL,
|
|
tag_type TEXT NOT NULL DEFAULT 'none',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE files (
|
|
id TEXT PRIMARY KEY NOT NULL DEFAULT gen_random_uuid(),
|
|
name TEXT NOT NULL,
|
|
mime_type TEXT NOT NULL DEFAULT '',
|
|
size BIGINT NOT NULL DEFAULT 0,
|
|
storage_key TEXT NOT NULL DEFAULT '',
|
|
checksum TEXT NOT NULL DEFAULT '',
|
|
ocr_text TEXT NOT NULL DEFAULT '',
|
|
is_folder BOOLEAN NOT NULL DEFAULT false,
|
|
parent_file_id TEXT,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE file_tags (
|
|
id TEXT PRIMARY KEY NOT NULL DEFAULT gen_random_uuid(),
|
|
tag_id TEXT,
|
|
file_id TEXT
|
|
);
|
|
|
|
CREATE TABLE thumbnails (
|
|
id TEXT PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
file_id TEXT NOT NULL REFERENCES files(id) ON DELETE CASCADE,
|
|
page_number INTEGER NOT NULL,
|
|
resolution_label TEXT NOT NULL,
|
|
width INTEGER NOT NULL,
|
|
height INTEGER NOT NULL,
|
|
storage_key TEXT NOT NULL,
|
|
mime_type TEXT NOT NULL DEFAULT 'image/jpeg',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE refresh_tokens (
|
|
id TEXT NOT NULL DEFAULT gen_random_uuid(),
|
|
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
token_hash TEXT NOT NULL,
|
|
expires_at TIMESTAMP NOT NULL,
|
|
revoked BOOLEAN NOT NULL DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|