initial commit
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
-- Создание схемы, если не существует
|
||||
CREATE SCHEMA IF NOT EXISTS uno_bff;
|
||||
|
||||
-- Таблица для хранения метаданных загруженных файлов пользователей
|
||||
CREATE TABLE IF NOT EXISTS uno_bff.user_files (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id UUID NOT NULL,
|
||||
s3_key VARCHAR(512) NOT NULL,
|
||||
original_filename VARCHAR(255) NOT NULL,
|
||||
file_size BIGINT NOT NULL,
|
||||
content_type VARCHAR(128) NOT NULL,
|
||||
file_type VARCHAR(32) NOT NULL DEFAULT 'image', -- image, video
|
||||
folder VARCHAR(64) NOT NULL DEFAULT 'images_input',
|
||||
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT user_files_user_id_fk FOREIGN KEY (user_id) REFERENCES uno_bff.users(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- Индексы для ускорения поиска
|
||||
CREATE INDEX IF NOT EXISTS idx_user_files_user_id ON uno_bff.user_files(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_user_files_s3_key ON uno_bff.user_files(s3_key);
|
||||
CREATE INDEX IF NOT EXISTS idx_user_files_folder ON uno_bff.user_files(folder);
|
||||
CREATE INDEX IF NOT EXISTS idx_user_files_created_at ON uno_bff.user_files(created_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_user_files_file_type ON uno_bff.user_files(file_type);
|
||||
|
||||
-- Комментарий
|
||||
COMMENT ON TABLE uno_bff.user_files IS 'Метаданные загруженных файлов пользователей в S3';
|
||||
COMMENT ON COLUMN uno_bff.user_files.user_id IS 'ID владельца файла (UUID)';
|
||||
COMMENT ON COLUMN uno_bff.user_files.s3_key IS 'Путь к файлу в S3 хранилище';
|
||||
COMMENT ON COLUMN uno_bff.user_files.original_filename IS 'Оригинальное имя файла';
|
||||
COMMENT ON COLUMN uno_bff.user_files.file_type IS 'Тип файла: image, video';
|
||||
COMMENT ON COLUMN uno_bff.user_files.folder IS 'Папка в S3 бакете (images_input, videos_input, etc.)';
|
||||
@@ -0,0 +1,14 @@
|
||||
-- Добавляем поле status для отслеживания состояния загрузки
|
||||
ALTER TABLE uno_bff.user_files
|
||||
ADD COLUMN IF NOT EXISTS status VARCHAR(32) DEFAULT 'uploaded';
|
||||
|
||||
-- Добавляем поле upload_id для multipart upload
|
||||
ALTER TABLE uno_bff.user_files
|
||||
ADD COLUMN IF NOT EXISTS upload_id VARCHAR(255);
|
||||
|
||||
-- Индекс для поиска по статусу
|
||||
CREATE INDEX IF NOT EXISTS idx_user_files_status ON uno_bff.user_files(status);
|
||||
|
||||
-- Комментарий
|
||||
COMMENT ON COLUMN uno_bff.user_files.status IS 'Статус файла: uploading, uploaded, failed';
|
||||
COMMENT ON COLUMN uno_bff.user_files.upload_id IS 'S3 UploadId для multipart upload';
|
||||
@@ -0,0 +1,14 @@
|
||||
-- Миграция: связываем user_files с generations и generation_steps
|
||||
|
||||
-- Добавляем новые колонки в user_files
|
||||
ALTER TABLE uno_bff.user_files
|
||||
ADD COLUMN IF NOT EXISTS generation_uuid uuid REFERENCES uno_bff.generations(generation_uuid) ON DELETE SET NULL,
|
||||
ADD COLUMN IF NOT EXISTS generation_step_id bigint REFERENCES uno_bff.generation_steps(id) ON DELETE SET NULL;
|
||||
|
||||
-- Индексы для ускорения поиска по генерациям
|
||||
CREATE INDEX IF NOT EXISTS idx_user_files_generation_uuid ON uno_bff.user_files(generation_uuid);
|
||||
CREATE INDEX IF NOT EXISTS idx_user_files_generation_step_id ON uno_bff.user_files(generation_step_id);
|
||||
|
||||
-- Комментарий
|
||||
COMMENT ON COLUMN uno_bff.user_files.generation_uuid IS 'UUID генерации, в рамках которой загружен файл';
|
||||
COMMENT ON COLUMN uno_bff.user_files.generation_step_id IS 'ID шага генерации, в рамках которого загружен файл';
|
||||
Reference in New Issue
Block a user