"""Add linked_user_id and is_umbral_contact to people table. Revision ID: 043 Revises: 042 """ from alembic import op import sqlalchemy as sa revision = "043" down_revision = "042" branch_labels = None depends_on = None def upgrade() -> None: op.add_column( "people", sa.Column( "linked_user_id", sa.Integer, sa.ForeignKey("users.id", ondelete="SET NULL"), nullable=True, ), ) op.add_column( "people", sa.Column( "is_umbral_contact", sa.Boolean, nullable=False, server_default="false", ), ) # Fast lookup of umbral contacts by owner op.execute( 'CREATE INDEX "ix_people_linked_user" ON people (user_id, linked_user_id) ' "WHERE linked_user_id IS NOT NULL" ) def downgrade() -> None: op.execute('DROP INDEX IF EXISTS "ix_people_linked_user"') op.drop_column("people", "is_umbral_contact") op.drop_column("people", "linked_user_id")