"""instance-wide default quota for new users The per-user ``users.quota_bytes`` stays authoritative for accounts that already exist — changing the default must never resize anyone's mailbox retroactively. This is only the value handed to the next user created. Revision ID: 0017 Revises: 0016 Create Date: 2026-09-15 """ from __future__ import annotations from collections.abc import Sequence from alembic import op revision: str = "0017" down_revision: str | None = "0016" branch_labels: str | Sequence[str] | None = None depends_on: str | Sequence[str] | None = None # 5 GiB — the same figure users.quota_bytes has defaulted to since 0001. _DEFAULT = 5 * 1024**3 def upgrade() -> None: op.execute( "ALTER TABLE app_settings ADD COLUMN default_quota_bytes bigint NOT NULL " f"DEFAULT {_DEFAULT}" ) op.execute( "ALTER TABLE app_settings ADD CONSTRAINT ck_app_settings_quota_positive " "CHECK (default_quota_bytes > 0)" ) def downgrade() -> None: op.execute("ALTER TABLE app_settings DROP CONSTRAINT IF EXISTS ck_app_settings_quota_positive") op.execute("ALTER TABLE app_settings DROP COLUMN IF EXISTS default_quota_bytes")