This commit is contained in:
cash
2026-03-29 23:50:49 -05:00
commit eb5e194331
56 changed files with 4010 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
"""proxy leasing columns
Revision ID: abe00f7f8f72
Revises: 175f03f1c9f7
Create Date: 20250505 18:12:44
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy import inspect
# revision identifiers, used by Alembic.
revision = "abe00f7f8f72"
down_revision = "175f03f1c9f7"
branch_labels = None
depends_on = None
def _has_column(bind, table: str, column: str) -> bool:
insp = inspect(bind)
return column in {c["name"] for c in insp.get_columns(table)}
def upgrade() -> None:
bind = op.get_bind()
# add only the columns that are missing
add_in_use = not _has_column(bind, "proxies", "in_use")
add_last_fail = not _has_column(bind, "proxies", "last_fail")
if add_in_use or add_last_fail:
with op.batch_alter_table("proxies") as batch:
if add_in_use:
batch.add_column(sa.Column("in_use", sa.Integer(), server_default="0"))
if add_last_fail:
batch.add_column(sa.Column("last_fail", sa.DateTime()))
def downgrade() -> None:
# downgrade assumes the columns exist, so drop them only if present
bind = op.get_bind()
drop_in_use = _has_column(bind, "proxies", "in_use")
drop_last_fail = _has_column(bind, "proxies", "last_fail")
if drop_in_use or drop_last_fail:
with op.batch_alter_table("proxies") as batch:
if drop_last_fail:
batch.drop_column("last_fail")
if drop_in_use:
batch.drop_column("in_use")