Self-hosted US Congress monitoring platform with AI policy briefs, bill/member/topic follows, ntfy + RSS + email notifications, alignment scoring, collections, and draft-letter generator. Authored by: Jack Levy
38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
"""add member bio and contact fields
|
|
|
|
Revision ID: 0007
|
|
Revises: 0006
|
|
Create Date: 2026-03-01
|
|
"""
|
|
import sqlalchemy as sa
|
|
from alembic import op
|
|
|
|
revision = "0007"
|
|
down_revision = "0006"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
op.add_column("members", sa.Column("congress_url", sa.String(), nullable=True))
|
|
op.add_column("members", sa.Column("birth_year", sa.String(10), nullable=True))
|
|
op.add_column("members", sa.Column("address", sa.String(), nullable=True))
|
|
op.add_column("members", sa.Column("phone", sa.String(50), nullable=True))
|
|
op.add_column("members", sa.Column("terms_json", sa.JSON(), nullable=True))
|
|
op.add_column("members", sa.Column("leadership_json", sa.JSON(), nullable=True))
|
|
op.add_column("members", sa.Column("sponsored_count", sa.Integer(), nullable=True))
|
|
op.add_column("members", sa.Column("cosponsored_count", sa.Integer(), nullable=True))
|
|
op.add_column("members", sa.Column("detail_fetched", sa.DateTime(timezone=True), nullable=True))
|
|
|
|
|
|
def downgrade():
|
|
op.drop_column("members", "congress_url")
|
|
op.drop_column("members", "birth_year")
|
|
op.drop_column("members", "address")
|
|
op.drop_column("members", "phone")
|
|
op.drop_column("members", "terms_json")
|
|
op.drop_column("members", "leadership_json")
|
|
op.drop_column("members", "sponsored_count")
|
|
op.drop_column("members", "cosponsored_count")
|
|
op.drop_column("members", "detail_fetched")
|