diff --git a/API.md b/API.md index e6e0ae1..37f09f9 100644 --- a/API.md +++ b/API.md @@ -114,7 +114,7 @@ | `parent_path` | 否 | 父目录相对路径,空字符串或缺省表示用户根目录 | - **父目录存在性校验**: 必须在 `StorageObjects` 存在 `relative_path == scoped_prefix/{parent}` 的行,或 `relative_path` 以 `scoped_prefix/{parent}/` 开头。否则 **404**。 -- **同名冲突**: 已有 `relative_path` 完全相等的行(无论 file / directory) → **409**。`uk_storage_workspace_path(workspace_id, storage_backend, path_hash)` 唯一索引保证幂等。 +- **同名冲突**: 已有 `relative_path` 完全相等的行(无论 file / directory) → **409**。冲突判定由应用层 `SELECT ... FOR UPDATE` 完成;`idx_storage_workspace_path(workspace_id, storage_backend, path_hash)` 仅作为查找索引,不再提供 DB 级唯一性兜底。 - **响应 201**: ```json { diff --git a/backend/Dockerfile b/backend/Dockerfile index b26cff0..434cc8e 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -10,7 +10,7 @@ ENV UV_HTTP_TIMEOUT=300 ENV UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple/ RUN uv lock && \ - uv sync --no-dev --no-editable --package backend + uv sync --no-dev --no-editable --package backend --no-install-workspace EXPOSE 8000 CMD ["gunicorn", "--config", "backend/gunicorn.conf.py", "backend.main:app"] diff --git a/runtime/Dockerfile b/runtime/Dockerfile index 6a38be7..2da5c1e 100644 --- a/runtime/Dockerfile +++ b/runtime/Dockerfile @@ -10,7 +10,7 @@ COPY pyproject.toml uv.lock ./ COPY common ./common COPY runtime ./runtime COPY extras ./extras -RUN uv sync --frozen --no-dev --no-editable --package runtime +RUN uv sync --frozen --no-dev --no-editable --package runtime --no-install-workspace RUN mkdir -p /root/.jupyter/custom /app/.venv/share/jupyter/custom && \ echo '#top-panel, #top-panel-wrapper, .jp-Notebook-header, .jp-FileEditorHeader {display: none !important; height: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: none !important; position: absolute !important; pointer-events: none !important; }' > /root/.jupyter/custom/custom.css && \ diff --git a/schedule/Dockerfile b/schedule/Dockerfile index 6583ec0..17c301a 100644 --- a/schedule/Dockerfile +++ b/schedule/Dockerfile @@ -7,7 +7,7 @@ COPY pyproject.toml uv.lock ./ COPY common ./common COPY schedule ./schedule COPY extras ./extras -RUN uv sync --frozen --no-dev --no-editable --package schedule +RUN uv sync --frozen --no-dev --no-editable --package schedule --no-install-workspace RUN uv venv --python 3.12 /opt/venv/python3.12 && \ uv pip install --python /opt/venv/python3.12/bin/python -r extras/requirements-py312 && \