@@ -0,0 +1,53 @@
|
||||
"""Add Cloud-proxy token reservations and usage events."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
revision = "0005_cloud_token_usage"
|
||||
down_revision = "0004_cloud_governance"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.create_table(
|
||||
"cloud_token_reservations",
|
||||
sa.Column("id", sa.String(), primary_key=True),
|
||||
sa.Column("host_id", sa.String(), sa.ForeignKey("host_registrations.host_id", ondelete="CASCADE"), nullable=False),
|
||||
sa.Column("usage_day", sa.String(), nullable=False),
|
||||
sa.Column("reserved_tokens", sa.Integer(), nullable=False),
|
||||
sa.Column("task_id", sa.String(), nullable=True),
|
||||
sa.Column("attempt", sa.Integer(), nullable=True),
|
||||
sa.Column("created_at", sa.String(), nullable=False),
|
||||
sa.Column("expires_at", sa.String(), nullable=False),
|
||||
)
|
||||
op.create_index("ix_cloud_token_reservations_host_day", "cloud_token_reservations", ["host_id", "usage_day"])
|
||||
op.create_index("ix_cloud_token_reservations_expires_at", "cloud_token_reservations", ["expires_at"])
|
||||
op.create_table(
|
||||
"cloud_token_usage_events",
|
||||
sa.Column("id", sa.String(), primary_key=True),
|
||||
sa.Column("host_id", sa.String(), sa.ForeignKey("host_registrations.host_id", ondelete="CASCADE"), nullable=False),
|
||||
sa.Column("usage_day", sa.String(), nullable=False),
|
||||
sa.Column("task_id", sa.String(), nullable=True),
|
||||
sa.Column("attempt", sa.Integer(), nullable=True),
|
||||
sa.Column("provider", sa.String(), nullable=False),
|
||||
sa.Column("model", sa.String(), nullable=False),
|
||||
sa.Column("input_tokens", sa.Integer(), nullable=True),
|
||||
sa.Column("output_tokens", sa.Integer(), nullable=True),
|
||||
sa.Column("total_tokens", sa.Integer(), nullable=False),
|
||||
sa.Column("occurred_at", sa.String(), nullable=False),
|
||||
)
|
||||
op.create_index("ix_cloud_token_usage_events_host_day", "cloud_token_usage_events", ["host_id", "usage_day"])
|
||||
op.create_index("ix_cloud_token_usage_events_occurred_at", "cloud_token_usage_events", ["occurred_at"])
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_index("ix_cloud_token_usage_events_occurred_at", table_name="cloud_token_usage_events")
|
||||
op.drop_index("ix_cloud_token_usage_events_host_day", table_name="cloud_token_usage_events")
|
||||
op.drop_table("cloud_token_usage_events")
|
||||
op.drop_index("ix_cloud_token_reservations_expires_at", table_name="cloud_token_reservations")
|
||||
op.drop_index("ix_cloud_token_reservations_host_day", table_name="cloud_token_reservations")
|
||||
op.drop_table("cloud_token_reservations")
|
||||
Reference in New Issue
Block a user