- config: WORKER_ROLE (sync|jobs|all), INTERACTIVE_CONCURRENCY, BULK_CONCURRENCY. - queue: named queues (interactive/bulk) + enqueue_job() router; sync_bootstrap goes to bulk, all other jobs to interactive. - workers.run: single entrypoint; role=jobs runs both arq consumers (per-queue timeout/concurrency), role=sync runs the supervisor, all=both (dev default). - docker-compose: worker-sync + worker-jobs services (shared image, nofile ulimit); backend/Dockerfile; Makefile worker/worker-sync/worker-jobs targets. - tests repointed to app.queue.get_arq_pool; supervisor behavior unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
29 lines
682 B
Python
29 lines
682 B
Python
"""add users.quota_bytes
|
|
|
|
Per-user storage quota (bytes) so an administrator can define/override it later.
|
|
Defaults to 5 GiB for existing and new users.
|
|
|
|
Revision ID: 0006
|
|
Revises: 0005
|
|
Create Date: 2026-07-18
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from collections.abc import Sequence
|
|
|
|
from alembic import op
|
|
|
|
revision: str = "0006"
|
|
down_revision: str | None = "0005"
|
|
branch_labels: str | Sequence[str] | None = None
|
|
depends_on: str | Sequence[str] | None = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.execute("ALTER TABLE users ADD COLUMN quota_bytes bigint NOT NULL DEFAULT 5368709120")
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.execute("ALTER TABLE users DROP COLUMN IF EXISTS quota_bytes")
|