"""other_inids Revision ID: 9ba06b599b77 Revises: ee667dfd950d Create Date: 2020-10-02 14:29:03.705406 """ # revision identifiers, used by Alembic. revision = '9ba06b599b77' down_revision = 'ee667dfd950d' branch_labels = None depends_on = None from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql def upgrade(): op.execute('''alter table in_stats drop constraint in_stats_fk1''') op.execute('''alter table in_follows drop constraint in_follows_followed_by_inid_fkey''') op.execute('''alter table in_follows drop constraint in_follows_followee_inid_fkey''') op.add_column('in_user', sa.Column('other_inids', postgresql.ARRAY(sa.Text()), nullable=True)) op.execute(''' create function trig_inid_canonical_insert() returns trigger language plpgsql as $$ BEGIN NEW.inid = lower(substring(NEW.inid from '([\w\.\_]+)')); RETURN NEW; END; $$; ''') op.execute(''' create trigger inid_on_insert before insert on in_user for each row execute procedure trig_inid_canonical_insert(); ''') def downgrade(): op.execute('''drop trigger inid_on_insert on in_user''') op.execute('''drop function trig_inid_canonical_insert()''') op.drop_column('in_user', 'other_inids') op.execute('''alter table in_stats add constraint in_stats_fk1 foreign key (inid) references in_user (inid)''') op.execute('''alter table in_follows add constraint in_follows_followed_by_inid_fkey foreign key (followed_by_inid) references in_user (inid)''') op.execute('''alter table in_follows add constraint in_follows_followee_inid_fkey foreign key (followee_inid) references in_user (inid)''')