"""Widen memory byte columns to BIGINT docker_metrics.mem_usage_bytes and docker_containers.mem_usage_bytes / mem_limit_bytes were int4, which overflows for any container using >2.1 GB (asyncpg: "value out of int32 range"), failing the whole ingest batch. Widen to BIGINT — a safe in-place int4→int8 promotion, no data rewrite. Revision ID: docker_008_bigint_mem Revises: docker_007_disk_usage Create Date: 2026-06-20 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa revision: str = "docker_008_bigint_mem" down_revision: Union[str, None] = "docker_007_disk_usage" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.alter_column("docker_metrics", "mem_usage_bytes", type_=sa.BigInteger()) op.alter_column("docker_containers", "mem_usage_bytes", type_=sa.BigInteger()) op.alter_column("docker_containers", "mem_limit_bytes", type_=sa.BigInteger()) def downgrade() -> None: # Narrowing back to int4 will error if any stored value exceeds 2^31 — that's # the very condition this migration fixed, so downgrade is best-effort. op.alter_column("docker_containers", "mem_limit_bytes", type_=sa.Integer()) op.alter_column("docker_containers", "mem_usage_bytes", type_=sa.Integer()) op.alter_column("docker_metrics", "mem_usage_bytes", type_=sa.Integer())