"""add_recent_search_item_model Revision ID: 0b4eed214b27 Revises: b3d99035eefa Create Date: 2021-01-22 09:32:46.374228 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = '0b4eed214b27' down_revision = 'f7e70bb35433' branch_labels = None depends_on = None def upgrade(): op.create_table('RecentSearchItem', sa.Column('id', sa.BigInteger(), nullable=False), sa.Column('type', sa.Integer(), nullable=False), sa.Column('user_id', sa.Integer(), nullable=False), sa.Column('artist_id', sa.Integer(), nullable=True), sa.Column('project_id', sa.Integer(), nullable=True), sa.Column('campaign_id', sa.Integer(), nullable=True), sa.Column('searched_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=False), sa.ForeignKeyConstraint(['artist_id'], ['Artist.id'], name=op.f('fk_RecentSearchItem_artist_id_Artist'), ondelete='CASCADE'), sa.ForeignKeyConstraint(['campaign_id'], ['Campaign.id'], name=op.f('fk_RecentSearchItem_campaign_id_Campaign'), ondelete='CASCADE'), sa.ForeignKeyConstraint(['project_id'], ['Project.id'], name=op.f('fk_RecentSearchItem_project_id_Project'), ondelete='CASCADE'), sa.ForeignKeyConstraint(['user_id'], ['User.id'], name=op.f('fk_RecentSearchItem_user_id_User'), ondelete='CASCADE'), sa.PrimaryKeyConstraint('id', name=op.f('pk_RecentSearchItem')), sa.UniqueConstraint('artist_id', 'user_id', name='uq_RecentSearchItem_artist_id_user_id'), sa.UniqueConstraint('campaign_id', 'user_id', name='uq_RecentSearchItem_campaign_id_user_id'), sa.UniqueConstraint('project_id', 'user_id', name='uq_RecentSearchItem_project_id_user_id'), sa.CheckConstraint(f"(artist_id is not null AND type = 0) OR (project_id is not null AND type = 1) OR (campaign_id is not null AND type = 2)", name="ck_RecentSearchItem_type"), ) def downgrade(): op.drop_table('RecentSearchItem')