mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
"""Observability rework tracking: tasks.revision_count + audit_log query index.
|
|||
|
|
|
||
|
|
``tasks.revision_count`` makes the per-task rework rate an O(1) column read
|
||
|
|
instead of an audit_log scan; the composite index on
|
||
|
|
``audit_log(target_id, event_type, timestamp)`` keeps the cycle-time and rework
|
||
|
|
reconstruction queries fast. Pure schema change, no backfill — existing rows
|
||
|
|
default to 0 (the counter is forward-only, matching the design's forward-only
|
||
|
|
rework attribution).
|
||
|
|
|
||
|
|
Revision ID: 045_observability_rework
|
||
|
|
Revises: 044_convention_findings
|
||
|
|
Create Date: 2026-06-23
|
||
|
|
|
||
|
|
NOTE: revision id is 24 chars — alembic's ``alembic_version.version_num`` is
|
||
|
|
``VARCHAR(32)`` and a longer id raises at record time.
|
||
|
|
"""
|
||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
import sqlalchemy as sa
|
||
|
|
from alembic import op
|
||
|
|
|
||
|
|
revision = "045_observability_rework"
|
||
|
|
down_revision = "044_convention_findings"
|
||
|
|
branch_labels = None
|
||
|
|
depends_on = None
|
||
|
|
|
||
|
|
|
||
|
|
def upgrade() -> None:
|
||
|
|
op.add_column(
|
||
|
|
"tasks",
|
||
|
|
sa.Column(
|
||
|
|
"revision_count",
|
||
|
|
sa.Integer(),
|
||
|
|
nullable=False,
|
||
|
|
server_default="0",
|
||
|
|
),
|
||
|
|
)
|
||
|
|
op.create_index(
|
||
|
|
"ix_audit_log_target_event_ts",
|
||
|
|
"audit_log",
|
||
|
|
["target_id", "event_type", "timestamp"],
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
def downgrade() -> None:
|
||
|
|
op.drop_index("ix_audit_log_target_event_ts", table_name="audit_log")
|
||
|
|
op.drop_column("tasks", "revision_count")
|