diff options
| author | Pinapelz <yukais@pinapelz.com> | 2026-01-11 22:57:30 -0800 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2026-01-11 22:57:30 -0800 |
| commit | 992e0fd7ac2b0bd16dec0059531621ecaf63e17f (patch) | |
| tree | 0ff293a16ae90b1674265026b6fee76c4b28756c /schema.sql | |
| parent | 1b05e7f5d9ad465b20f15d057ef43f8b924b7573 (diff) | |
implement partial upload and re-assemble
Diffstat (limited to 'schema.sql')
| -rw-r--r-- | schema.sql | 30 |
1 files changed, 29 insertions, 1 deletions
@@ -28,6 +28,28 @@ CREATE TABLE IF NOT EXISTS files ( ); -- ========================= +-- File partials table +-- ========================= +CREATE TABLE IF NOT EXISTS file_partials ( + partial_id BIGSERIAL PRIMARY KEY, + disc_channel_id VARCHAR(255) NOT NULL, + disc_message_id VARCHAR(255) NOT NULL, + directory_id BIGINT NOT NULL + REFERENCES directories(directory_id) + ON DELETE RESTRICT, + part_name TEXT NOT NULL, + part_number INTEGER NOT NULL, + part_size BIGINT NOT NULL, + original_filename TEXT NOT NULL, + file_description TEXT, + mime_type TEXT DEFAULT 'application/octet-stream', + uploaded_via_webhook BOOLEAN DEFAULT FALSE, + created_at TIMESTAMPTZ NOT NULL DEFAULT now(), + CONSTRAINT partials_unique_name_per_directory + UNIQUE (directory_id, part_name) +); + +-- ========================= -- Indexes -- ========================= @@ -37,7 +59,13 @@ ON directories (path); CREATE INDEX IF NOT EXISTS idx_files_directory ON files (directory_id); +CREATE INDEX IF NOT EXISTS idx_partials_directory +ON file_partials (directory_id); + +CREATE INDEX IF NOT EXISTS idx_partials_original_filename +ON file_partials (original_filename); + INSERT INTO directories (path) VALUES ('') -ON CONFLICT (path) DO NOTHING;
\ No newline at end of file +ON CONFLICT (path) DO NOTHING; |
