1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- """add_limits_overrides_to_users.
- Revision ID: 7eb70560f406
- Revises: c45a9cf6a8a4
- Create Date: 2025-01-03 20:27:16.139511
- """
- import os
- from typing import Sequence, Union
- import sqlalchemy as sa
- from alembic import op
- from sqlalchemy import inspect
- # revision identifiers, used by Alembic.
- revision: str = "7eb70560f406"
- down_revision: Union[str, None] = "c45a9cf6a8a4"
- branch_labels: Union[str, Sequence[str], None] = None
- depends_on: Union[str, Sequence[str], None] = None
- project_name = os.getenv("R2R_PROJECT_NAME", "r2r_default")
- def check_if_upgrade_needed():
- """Check if the upgrade has already been applied."""
- connection = op.get_bind()
- inspector = inspect(connection)
- # Check if users table exists
- if not inspector.has_table("users", schema=project_name):
- print(
- f"Migration not needed: '{project_name}.users' table doesn't exist"
- )
- return False
- users_columns = {
- col["name"]
- for col in inspector.get_columns("users", schema=project_name)
- }
- if "limits_overrides" in users_columns:
- print(
- "Migration not needed: users table already has limits_overrides column"
- )
- return False
- else:
- print("Migration needed: users table needs limits_overrides column")
- return True
- def upgrade() -> None:
- if not check_if_upgrade_needed():
- return
- # Add the limits_overrides column as JSONB with default NULL
- op.add_column(
- "users",
- sa.Column("limits_overrides", sa.JSON(), nullable=True),
- schema=project_name,
- )
- def downgrade() -> None:
- # Remove the limits_overrides column
- op.drop_column("users", "limits_overrides", schema=project_name)
|