HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/buyercall/migrations/versions/ec0875b9490c_create_channel.py
"""create channel

Revision ID: ec0875b9490c
Revises: a378e621db3e
Create Date: 2022-04-11 20:11:53.653603

"""

# revision identifiers, used by Alembic.
revision = 'ec0875b9490c'
down_revision = 'a378e621db3e'
branch_labels = None
depends_on = None

from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
from buyercall.lib.util_sqlalchemy import AwareDateTime


def upgrade():
    op.create_table('channel',
        sa.Column('created_on', AwareDateTime(), nullable=False),
        sa.Column('updated_on', AwareDateTime(), nullable=False),
        sa.Column('id', sa.Integer(), nullable=False),
        sa.Column('sid', postgresql.UUID(as_uuid=True), nullable=True),
        sa.Column('name', sa.String(length=36), nullable=False),
        sa.Column('description', sa.String(length=300), nullable=False),
        sa.Column('type', sa.Integer(), nullable=True),
        sa.Column('content', postgresql.JSON(astext_type=sa.Text()), server_default='{}', nullable=False),
        sa.Column('is_active', sa.Boolean(), server_default='1', nullable=False),
        sa.Column('source', sa.Integer(), nullable=True),
        sa.Column('partnership_id', sa.Integer(), nullable=True),
        sa.Column('partnership_account_id', sa.Integer(), nullable=True),
        sa.Column('created_by', sa.Integer(), nullable=True),
        sa.Column('updated_by', sa.Integer(), nullable=True),
        sa.ForeignKeyConstraint(['created_by'], ['users.id'], onupdate='CASCADE', ondelete='CASCADE'),
        sa.ForeignKeyConstraint(['partnership_account_id'], ['partnership_accounts.id'], onupdate='CASCADE', ondelete='CASCADE'),
        sa.ForeignKeyConstraint(['partnership_id'], ['partnerships.id'], onupdate='CASCADE', ondelete='CASCADE'),
        sa.ForeignKeyConstraint(['source'], ['source.id'], onupdate='CASCADE', ondelete='SET NULL'),
        sa.ForeignKeyConstraint(['type'], ['channel_type.id'], onupdate='CASCADE', ondelete='SET NULL'),
        sa.ForeignKeyConstraint(['updated_by'], ['users.id'], onupdate='CASCADE', ondelete='CASCADE'),
        sa.PrimaryKeyConstraint('id')
    )
    op.create_index(op.f('ix_channel_created_by'), 'channel', ['created_by'], unique=False)
    op.create_index(op.f('ix_channel_partnership_account_id'), 'channel', ['partnership_account_id'], unique=False)
    op.create_index(op.f('ix_channel_partnership_id'), 'channel', ['partnership_id'], unique=False)
    op.create_index(op.f('ix_channel_sid'), 'channel', ['sid'], unique=True)
    op.create_index(op.f('ix_channel_type'), 'channel', ['type'], unique=False)
    op.create_index(op.f('ix_channel_source'), 'channel', ['source'], unique=False)
    op.create_index(op.f('ix_channel_updated_by'), 'channel', ['updated_by'], unique=False)

def downgrade():
    op.drop_index(op.f('ix_channel_updated_by'), table_name='channel')
    op.drop_index(op.f('ix_channel_source'), table_name='channel')
    op.drop_index(op.f('ix_channel_type'), table_name='channel')
    op.drop_index(op.f('ix_channel_sid'), table_name='channel')
    op.drop_index(op.f('ix_channel_partnership_id'), table_name='channel')
    op.drop_index(op.f('ix_channel_partnership_account_id'), table_name='channel')
    op.drop_index(op.f('ix_channel_created_by'), table_name='channel')
    op.drop_table('channel')