Files
sciagent/be0/migrations/026_imagehub_file_folder_path.sql
Thinh Lam 688fac73e9
CI/CD / backend (push) Failing after 2m8s
CI/CD / frontend (push) Failing after 1m40s
CI/CD / deploy (push) Has been skipped
sciagent code + Gitea Actions CI/CD
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 09:38:30 +07:00

22 lines
1.4 KiB
SQL

-- ImageHub: persist the relative folder path of each uploaded file (Option B — real folders inside
-- a dataset). Until now logical_path was basename-flattened, so an uploaded directory structure
-- (e.g. the nnU-Net imagesTr/labelsTr layout) was lost once files reached MinIO. folder_path keeps
-- the relative directory so the dataset browser can render a real folder tree and the structure
-- round-trips. The working-file natural key moves from (dataset_id, logical_path) to
-- (dataset_id, folder_path, logical_path) so two files sharing a basename in different folders no
-- longer collide and silently merge. Existing rows default folder_path to the empty string, so the
-- new key stays unique wherever the old one was. Idempotent.
-- Apply after 025 (no semicolons inside comments or string literals — the runner splitter is naive):
-- docker exec -i initiative-postgres psql -U initiative -d initiatives < be0/migrations/026_imagehub_file_folder_path.sql
ALTER TABLE imagehub_dataset_files
ADD COLUMN IF NOT EXISTS folder_path TEXT NOT NULL DEFAULT '';
DROP INDEX IF EXISTS uq_imagehub_dataset_files_path;
CREATE UNIQUE INDEX IF NOT EXISTS uq_imagehub_dataset_files_folder_path
ON imagehub_dataset_files (dataset_id, folder_path, logical_path);
CREATE INDEX IF NOT EXISTS idx_imagehub_dataset_files_folder
ON imagehub_dataset_files (dataset_id, folder_path);