- Add MinIO S3-compatible storage to docker-compose (dev, staging, prod) - Create migrations 103-108 (waveform_url, user_folders, user_files, user_storage_quotas, gear_items.is_public, gear_images) - Add Go models: UserFile, UserFolder, StorageQuota, GearImage - Add WaveformURL to Track model, IsPublic + GearImages to GearItem model
16 lines
765 B
SQL
16 lines
765 B
SQL
-- Migration 105: Create user_files table (v0.501 C1.1)
|
|
CREATE TABLE IF NOT EXISTS user_files (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
folder_id UUID REFERENCES user_folders(id) ON DELETE SET NULL,
|
|
filename VARCHAR(255) NOT NULL,
|
|
s3_key VARCHAR(500) NOT NULL,
|
|
size_bytes BIGINT NOT NULL DEFAULT 0,
|
|
mime_type VARCHAR(100) NOT NULL DEFAULT 'application/octet-stream',
|
|
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
|
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX idx_user_files_user_id ON user_files(user_id);
|
|
CREATE INDEX idx_user_files_folder_id ON user_files(folder_id);
|
|
CREATE INDEX idx_user_files_mime_type ON user_files(mime_type);
|