def upgrade():
    op.create_table(
        'print_job', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=False),
        sa.Column('admin_id', residue.UUID(), nullable=False),
        sa.Column('admin_name',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('printer_id',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('reg_station', sa.Integer(), nullable=True),
        sa.Column('queued', residue.UTCDateTime(), nullable=True),
        sa.Column('printed', residue.UTCDateTime(), nullable=True),
        sa.Column('errors', sa.Unicode(), server_default='', nullable=False),
        sa.Column('is_minor', sa.Boolean(), nullable=False),
        sa.Column('json_data',
                  postgresql.JSONB(astext_type=sa.Text()),
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['admin_id'], ['admin_account.id'],
            name=op.f('fk_print_queue_admin_id_admin_account')),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_print_queue_attendee_id_attendee')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_print_queue')))
def upgrade():
    if is_sqlite:
        with op.batch_alter_table(
                'attendee', reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.add_column(
                sa.Column('confirmed', residue.UTCDateTime(), nullable=True))
    else:
        op.add_column(
            'attendee',
            sa.Column('confirmed', residue.UTCDateTime(), nullable=True))
Пример #3
0
def upgrade():
    op.add_column(
        'art_show_application',
        sa.Column('checked_in', residue.UTCDateTime(), nullable=True))
    op.add_column(
        'art_show_application',
        sa.Column('checked_out', residue.UTCDateTime(), nullable=True))
    op.add_column(
        'art_show_application',
        sa.Column('locations', sa.Unicode(), server_default='',
                  nullable=False))
Пример #4
0
def upgrade():
    op.create_table(
        'receipt_item', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=True),
        sa.Column('group_id', residue.UUID(), nullable=True),
        sa.Column('txn_id', residue.UUID(), nullable=True),
        sa.Column('fk_id', residue.UUID(), nullable=True),
        sa.Column('model', sa.Unicode(), server_default='', nullable=False),
        sa.Column('txn_type',
                  sa.Integer(),
                  server_default='186441959',
                  nullable=False),
        sa.Column('item_type',
                  sa.Integer(),
                  server_default='224685583',
                  nullable=False),
        sa.Column('amount', sa.Integer(), nullable=False),
        sa.Column('when', residue.UTCDateTime(), nullable=False),
        sa.Column('who', sa.Unicode(), server_default='', nullable=False),
        sa.Column('desc', sa.Unicode(), server_default='', nullable=False),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_receipt_item_attendee_id_attendee'),
            ondelete='SET NULL'),
        sa.ForeignKeyConstraint(['group_id'], ['group.id'],
                                name=op.f('fk_receipt_item_group_id_group'),
                                ondelete='SET NULL'),
        sa.ForeignKeyConstraint(
            ['txn_id'], ['stripe_transaction.id'],
            name=op.f('fk_receipt_item_txn_id_stripe_transaction'),
            ondelete='SET NULL'),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_receipt_item')))
Пример #5
0
def upgrade():
    op.create_table(
        'api_token', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('admin_account_id', residue.UUID(), nullable=False),
        sa.Column('token', residue.UUID(), nullable=False),
        sa.Column('access', sa.Unicode(), server_default='', nullable=False),
        sa.Column('name', sa.Unicode(), server_default='', nullable=False),
        sa.Column('description',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('issued_time', residue.UTCDateTime(), nullable=False),
        sa.Column('revoked_time', residue.UTCDateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ['admin_account_id'], ['admin_account.id'],
            name=op.f('fk_api_token_admin_account_id_admin_account')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_api_token')))
def upgrade():
    op.add_column('promo_code', sa.Column('cost', sa.Integer(), nullable=True))
    op.add_column(
        'promo_code_group',
        sa.Column('registered',
                  residue.UTCDateTime(),
                  server_default=sa.text("timezone('utc', current_timestamp)"),
                  nullable=False))
Пример #7
0
def upgrade():
    op.create_table('api_job',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('admin_id', residue.UUID(), nullable=False),
    sa.Column('admin_name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('queued', residue.UTCDateTime(), nullable=True),
    sa.Column('completed', residue.UTCDateTime(), nullable=True),
    sa.Column('cancelled', residue.UTCDateTime(), nullable=True),
    sa.Column('job_name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('target_server', sa.Unicode(), server_default='', nullable=False),
    sa.Column('query', sa.Unicode(), server_default='', nullable=False),
    sa.Column('api_token', sa.Unicode(), server_default='', nullable=False),
    sa.Column('errors', sa.Unicode(), server_default='', nullable=False),
    sa.Column('json_data', postgresql.JSONB(astext_type=sa.Text()), nullable=False),
    sa.ForeignKeyConstraint(['admin_id'], ['admin_account.id'], name=op.f('fk_api_job_admin_id_admin_account')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_api_job'))
    )
Пример #8
0
def upgrade():
    op.create_table('attraction',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('name', sa.Unicode(), server_default='', nullable=False, unique=True),
    sa.Column('description', sa.Unicode(), server_default='', nullable=False),
    sa.Column('notifications', residue.JSON(), server_default='[]', nullable=False),
    sa.Column('required_checkin', sa.Integer(), server_default='0', nullable=False),
    sa.Column('restriction', sa.Integer(), server_default='0', nullable=False),
    sa.Column('department_id', residue.UUID(), nullable=True),
    sa.Column('owner_id', residue.UUID(), nullable=False),
    sa.ForeignKeyConstraint(['department_id'], ['department.id'], name=op.f('fk_attraction_department_id_department')),
    sa.ForeignKeyConstraint(['owner_id'], ['admin_account.id'], name=op.f('fk_attraction_owner_id_admin_account')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_attraction')),
    )
    op.create_table('attraction_feature',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('description', sa.Unicode(), server_default='', nullable=False),
    sa.Column('attraction_id', residue.UUID(), nullable=False),
    sa.ForeignKeyConstraint(['attraction_id'], ['attraction.id'], name=op.f('fk_attraction_feature_attraction_id_attraction')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_attraction_feature')),
    sa.UniqueConstraint('name', 'attraction_id'),
    )
    op.create_table('attraction_event',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attraction_feature_id', residue.UUID(), nullable=False),
    sa.Column('location', sa.Integer(), nullable=False),
    sa.Column('start_time', residue.UTCDateTime(), nullable=False),
    sa.Column('duration', sa.Integer(), server_default='900', nullable=False),
    sa.Column('slots', sa.Integer(), server_default='1', nullable=False),
    sa.ForeignKeyConstraint(['attraction_feature_id'], ['attraction_feature.id'], name=op.f('fk_attraction_event_attraction_feature_id_attraction_feature')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_attraction_event')),
    )
    op.create_table('attraction_signup',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attraction_event_id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.Column('signup_time', residue.UTCDateTime(), server_default=sa.text(utcnow_server_default), nullable=False),
    sa.Column('checkin_time', residue.UTCDateTime(), nullable=True),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_attraction_signup_attendee_id_attendee')),
    sa.ForeignKeyConstraint(['attraction_event_id'], ['attraction_event.id'], name=op.f('fk_attraction_signup_attraction_event_id_attraction_event')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_attraction_signup')),
    sa.UniqueConstraint('attraction_event_id', 'attendee_id', name=op.f('uq_attraction_signup_attraction_event_id'))
    )
def upgrade():
    op.add_column(
        'mits_team',
        sa.Column('waiver_signature',
                  sa.Unicode(),
                  server_default='',
                  nullable=False))
    op.add_column(
        'mits_team',
        sa.Column('waiver_signed', residue.UTCDateTime(), nullable=True))
Пример #10
0
def upgrade():
    op.create_table('marketplace_application',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=True),
    sa.Column('business_name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('status', sa.Integer(), server_default='172070601', nullable=False),
    sa.Column('registered', residue.UTCDateTime(), server_default=sa.text("timezone('utc', current_timestamp)"), nullable=False),
    sa.Column('approved', residue.UTCDateTime(), nullable=True),
    sa.Column('categories', sa.Unicode(), server_default='', nullable=False),
    sa.Column('categories_text', sa.Unicode(), server_default='', nullable=False),
    sa.Column('description', sa.Unicode(), server_default='', nullable=False),
    sa.Column('special_needs', sa.Unicode(), server_default='', nullable=False),
    sa.Column('admin_notes', sa.Unicode(), server_default='', nullable=False),
    sa.Column('base_price', sa.Integer(), server_default='0', nullable=False),
    sa.Column('overridden_price', sa.Integer(), nullable=True),
    sa.Column('amount_paid', sa.Integer(), server_default='0', nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_marketplace_application_attendee_id_attendee'), ondelete='SET NULL'),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_marketplace_application'))
    )
    op.create_index(op.f('ix_marketplace_application_amount_paid'), 'marketplace_application', ['amount_paid'], unique=False)
def upgrade():
    op.create_table(
        'art_show_receipt', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('invoice_num',
                  sa.Integer(),
                  server_default='0',
                  nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=True),
        sa.Column('closed', residue.UTCDateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_art_show_receipt_attendee_id_attendee'),
            ondelete='SET NULL'),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_art_show_receipt')))
    op.create_table(
        'art_show_payment', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('receipt_id', residue.UUID(), nullable=True),
        sa.Column('amount', sa.Integer(), server_default='0', nullable=False),
        sa.Column('type',
                  sa.Integer(),
                  server_default='180350097',
                  nullable=False),
        sa.Column('when', residue.UTCDateTime(), nullable=False),
        sa.ForeignKeyConstraint(
            ['receipt_id'], ['art_show_receipt.id'],
            name=op.f('fk_art_show_payment_receipt_id_art_show_receipt'),
            ondelete='SET NULL'),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_art_show_payment')))
    op.add_column('art_show_piece',
                  sa.Column('receipt_id', residue.UUID(), nullable=True))
    op.add_column(
        'art_show_piece',
        sa.Column('winning_bid',
                  sa.Integer(),
                  server_default='0',
                  nullable=True))
    op.create_foreign_key(
        op.f('fk_art_show_piece_receipt_id_art_show_receipt'),
        'art_show_piece',
        'art_show_receipt', ['receipt_id'], ['id'],
        ondelete='SET NULL')
def upgrade():
    op.create_table('art_show_bidder',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=True),
    sa.Column('bidder_num', sa.Unicode(), server_default='', nullable=False),
    sa.Column('hotel_name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('hotel_room_num', sa.Unicode(), server_default='', nullable=False),
    sa.Column('admin_notes', sa.Unicode(), server_default='', nullable=False),
    sa.Column('signed_up', residue.UTCDateTime(), nullable=True),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_art_show_bidder_attendee_id_attendee'), ondelete='SET NULL'),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_art_show_bidder'))
    )
def downgrade():
    op.drop_index(op.f('ix_attraction_notification_reply_sid'),
                  table_name='attraction_notification_reply')
    op.drop_table('attraction_notification_reply')
    op.drop_index(op.f('ix_attraction_notification_ident'),
                  table_name='attraction_notification')
    op.drop_table('attraction_notification')

    op.drop_index(op.f('ix_attraction_signup_checkin_time'),
                  table_name='attraction_signup')
    op.drop_index(op.f('ix_attraction_event_attraction_id'),
                  table_name='attraction_event')

    op.alter_column('attraction',
                    'advance_checkin',
                    new_column_name='required_checkin')
    op.alter_column('attraction',
                    'advance_notices',
                    new_column_name='notifications')
    op.alter_column('attraction_signup',
                    'signup_time',
                    existing_type=residue.UTCDateTime(),
                    server_default=text(utcnow_server_default))
    op.alter_column('attraction_signup',
                    'checkin_time',
                    existing_type=residue.UTCDateTime(),
                    nullable=True)

    op.drop_constraint(op.f('fk_attraction_signup_attraction_id_attraction'),
                       'attraction_signup',
                       type_='foreignkey')
    op.drop_constraint(op.f('fk_attraction_event_attraction_id_attraction'),
                       'attraction_event',
                       type_='foreignkey')

    op.drop_column('attraction_signup', 'attraction_id')
    op.drop_column('attraction_event', 'attraction_id')

    op.drop_column('attendee', 'notification_pref')
    op.drop_column('attendee', 'attractions_opt_out')
Пример #14
0
def upgrade():
    op.create_table('stripe_transaction',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('stripe_id', sa.Unicode(), server_default='', nullable=True),
    sa.Column('type', sa.Integer(), server_default='186441959', nullable=False),
    sa.Column('amount', sa.Integer(), nullable=False),
    sa.Column('when', residue.UTCDateTime(), nullable=False),
    sa.Column('who', sa.Unicode(), server_default='', nullable=False),
    sa.Column('desc', sa.Unicode(), server_default='', nullable=False),
    sa.Column('fk_id', residue.UUID(), nullable=False),
    sa.Column('fk_model', sa.Unicode(), server_default='', nullable=False),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_stripe_transaction'))
    )
def upgrade():
    op.create_table('promo_code',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('code', sa.Unicode(), server_default='', nullable=False),
    sa.Column('discount', sa.Integer(), nullable=True),
    sa.Column('discount_type', sa.Integer(), server_default='0', nullable=False),
    sa.Column('expiration_date', residue.UTCDateTime(), nullable=False),
    sa.Column('uses_allowed', sa.Integer(), nullable=True),
    sa.CheckConstraint("trim(code) != ''", name='ck_promo_code_non_empty_code'),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_promo_code'))
    )
    op.create_table('promo_code_word',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('word', sa.Unicode(), server_default='', nullable=False),
    sa.Column('part_of_speech', sa.Integer(), server_default='0', nullable=False),
    sa.CheckConstraint("trim(word) != ''", name='ck_promo_code_word_non_empty_word'),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_promo_code_word'))
    )

    if is_sqlite:
        def listen_for_reflect(inspector, table, column_info):
            """Adds parenthesis around SQLite datetime defaults for utcnow."""
            if column_info['default'] == "datetime('now', 'utc')":
                column_info['default'] = utcnow_server_default

        with op.batch_alter_table(
                'attendee',
                reflect_kwargs=dict(listeners=[('column_reflect', listen_for_reflect)])) as batch_op:
            batch_op.add_column(sa.Column('promo_code_id', residue.UUID(), nullable=True))
            batch_op.create_foreign_key(op.f('fk_attendee_promo_code_id_promo_code'), 'promo_code', ['promo_code_id'], ['id'])
    else:
        op.add_column('attendee', sa.Column('promo_code_id', residue.UUID(), nullable=True))
        op.create_foreign_key(op.f('fk_attendee_promo_code_id_promo_code'), 'attendee', 'promo_code', ['promo_code_id'], ['id'])

    op.create_index(op.f('ix_attendee_promo_code_id'), 'attendee', ['promo_code_id'], unique=False)

    op.create_index(
        op.f('uq_promo_code_normalized_code'),
        'promo_code',
        [text("replace(replace(lower(code), '-', ''), ' ', '')")],
        unique=True)

    op.create_index(
        op.f('uq_promo_code_word_normalized_word_part_of_speech'),
        'promo_code_word',
        [text('lower(trim(word))'), 'part_of_speech'],
        unique=True)
Пример #16
0
def upgrade():
    op.create_table('room',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('notes', sa.Unicode(), server_default='', nullable=False),
    sa.Column('message', sa.Unicode(), server_default='', nullable=False),
    sa.Column('locked_in', sa.Boolean(), server_default='False', nullable=False),
    sa.Column('nights', sa.Unicode(), server_default='', nullable=False),
    sa.Column('created', residue.UTCDateTime(), server_default=sa.text(utcnow_server_default), nullable=False),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_room'))
    )
    op.create_table('hotel_requests',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.Column('nights', sa.Unicode(), server_default='', nullable=False),
    sa.Column('wanted_roommates', sa.Unicode(), server_default='', nullable=False),
    sa.Column('unwanted_roommates', sa.Unicode(), server_default='', nullable=False),
    sa.Column('special_needs', sa.Unicode(), server_default='', nullable=False),
    sa.Column('approved', sa.Boolean(), server_default='False', nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_hotel_requests_attendee_id_attendee')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_hotel_requests')),
    sa.UniqueConstraint('attendee_id', name=op.f('uq_hotel_requests_attendee_id'))
    )
    op.create_table('room_assignment',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('room_id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_room_assignment_attendee_id_attendee')),
    sa.ForeignKeyConstraint(['room_id'], ['room.id'], name=op.f('fk_room_assignment_room_id_room')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_room_assignment'))
    )

    if is_sqlite:
        with op.batch_alter_table('attendee', reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.add_column(sa.Column('hotel_eligible', sa.Boolean(), server_default='False', nullable=False))
    else:
        op.add_column('attendee', sa.Column('hotel_eligible', sa.Boolean(), server_default='False', nullable=False))
Пример #17
0
def upgrade():
    op.create_table(
        'indie_studio', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('group_id', residue.UUID(), nullable=True),
        sa.Column('name', sa.Unicode(), server_default='', nullable=False),
        sa.Column('address', sa.Unicode(), server_default='', nullable=False),
        sa.Column('website', sa.Unicode(), server_default='', nullable=False),
        sa.Column('twitter', sa.Unicode(), server_default='', nullable=False),
        sa.Column('facebook', sa.Unicode(), server_default='', nullable=False),
        sa.Column('status',
                  sa.Integer(),
                  server_default='239694250',
                  nullable=False),
        sa.Column('staff_notes',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('registered',
                  residue.UTCDateTime(),
                  server_default=sa.text(utcnow_server_default),
                  nullable=False),
        sa.ForeignKeyConstraint(['group_id'], ['group.id'],
                                name=op.f('fk_indie_studio_group_id_group')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_indie_studio')),
        sa.UniqueConstraint('name', name=op.f('uq_indie_studio_name')))
    op.create_table(
        'indie_developer', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('studio_id', residue.UUID(), nullable=False),
        sa.Column('primary_contact',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('first_name',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('last_name', sa.Unicode(), server_default='',
                  nullable=False),
        sa.Column('email', sa.Unicode(), server_default='', nullable=False),
        sa.Column('cellphone', sa.Unicode(), server_default='',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['studio_id'], ['indie_studio.id'],
            name=op.f('fk_indie_developer_studio_id_indie_studio')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_indie_developer')))
    op.create_table(
        'indie_game', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('studio_id', residue.UUID(), nullable=False),
        sa.Column('title', sa.Unicode(), server_default='', nullable=False),
        sa.Column('brief_description',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('genres', sa.Unicode(), server_default='', nullable=False),
        sa.Column('description',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('how_to_play',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('link_to_video',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('link_to_game',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('password_to_game',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('code_type',
                  sa.Integer(),
                  server_default='153623436',
                  nullable=False),
        sa.Column('code_instructions',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('build_status',
                  sa.Integer(),
                  server_default='195530085',
                  nullable=False),
        sa.Column('build_notes',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('shown_events',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('video_submitted',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('submitted',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('agreed_liability',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('agreed_showtimes',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('agreed_reminder1',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('agreed_reminder2',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('status',
                  sa.Integer(),
                  server_default='239694250',
                  nullable=False),
        sa.Column('judge_notes',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('registered',
                  residue.UTCDateTime(),
                  server_default=sa.text(utcnow_server_default),
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['studio_id'], ['indie_studio.id'],
            name=op.f('fk_indie_game_studio_id_indie_studio')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_indie_game')))
    op.create_table(
        'indie_game_screenshot', sa.Column('id',
                                           residue.UUID(),
                                           nullable=False),
        sa.Column('game_id', residue.UUID(), nullable=False),
        sa.Column('filename', sa.Unicode(), server_default='', nullable=False),
        sa.Column('content_type',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('extension', sa.Unicode(), server_default='',
                  nullable=False),
        sa.Column('description',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['game_id'], ['indie_game.id'],
            name=op.f('fk_indie_game_screenshot_game_id_indie_game')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_indie_game_screenshot')))
    op.create_table(
        'indie_judge', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('admin_id', residue.UUID(), nullable=False),
        sa.Column('genres', sa.Unicode(), server_default='', nullable=False),
        sa.Column('staff_notes',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['admin_id'], ['admin_account.id'],
            name=op.f('fk_indie_judge_admin_id_admin_account')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_indie_judge')))
    op.create_table(
        'indie_game_code', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('game_id', residue.UUID(), nullable=False),
        sa.Column('judge_id', residue.UUID(), nullable=True),
        sa.Column('code', sa.Unicode(), server_default='', nullable=False),
        sa.Column('unlimited_use',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('judge_notes',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['game_id'], ['indie_game.id'],
            name=op.f('fk_indie_game_code_game_id_indie_game')),
        sa.ForeignKeyConstraint(
            ['judge_id'], ['indie_judge.id'],
            name=op.f('fk_indie_game_code_judge_id_indie_judge')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_indie_game_code')))
    op.create_table(
        'indie_game_review', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('game_id', residue.UUID(), nullable=False),
        sa.Column('judge_id', residue.UUID(), nullable=False),
        sa.Column('video_status',
                  sa.Integer(),
                  server_default='196944751',
                  nullable=False),
        sa.Column('game_status',
                  sa.Integer(),
                  server_default='196944751',
                  nullable=False),
        sa.Column('video_score',
                  sa.Integer(),
                  server_default='196944751',
                  nullable=False),
        sa.Column('game_score',
                  sa.Integer(),
                  server_default='0',
                  nullable=False),
        sa.Column('video_review',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('game_review',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('developer_response',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('staff_notes',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['game_id'], ['indie_game.id'],
            name=op.f('fk_indie_game_review_game_id_indie_game')),
        sa.ForeignKeyConstraint(
            ['judge_id'], ['indie_judge.id'],
            name=op.f('fk_indie_game_review_judge_id_indie_judge')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_indie_game_review')),
        sa.UniqueConstraint('game_id',
                            'judge_id',
                            name='review_game_judge_uniq'))
def upgrade():
    if is_sqlite:
        with op.batch_alter_table('indie_game', reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.add_column(sa.Column('waitlisted', residue.UTCDateTime(), nullable=True))
    else:
        op.add_column('indie_game', sa.Column('waitlisted', residue.UTCDateTime(), nullable=True))
def upgrade():
    op.create_table('approved_email',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('ident', sa.Unicode(), server_default='', nullable=False),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_approved_email'))
    )
    op.create_table('arbitrary_charge',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('amount', sa.Integer(), nullable=False),
    sa.Column('what', sa.Unicode(), server_default='', nullable=False),
    sa.Column('when', residue.UTCDateTime(), nullable=False),
    sa.Column('reg_station', sa.Integer(), nullable=True),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_arbitrary_charge'))
    )
    op.create_table('email',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('fk_id', residue.UUID(), nullable=True),
    sa.Column('ident', sa.Unicode(), server_default='', nullable=False),
    sa.Column('model', sa.Unicode(), server_default='', nullable=False),
    sa.Column('when', residue.UTCDateTime(), nullable=False),
    sa.Column('subject', sa.Unicode(), server_default='', nullable=False),
    sa.Column('dest', sa.Unicode(), server_default='', nullable=False),
    sa.Column('body', sa.Unicode(), server_default='', nullable=False),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_email'))
    )
    op.create_table('group',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('public_id', residue.UUID(), nullable=False),
    sa.Column('name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('tables', sa.Numeric(), server_default='0', nullable=False),
    sa.Column('address', sa.Unicode(), server_default='', nullable=False),
    sa.Column('website', sa.Unicode(), server_default='', nullable=False),
    sa.Column('wares', sa.Unicode(), server_default='', nullable=False),
    sa.Column('description', sa.Unicode(), server_default='', nullable=False),
    sa.Column('special_needs', sa.Unicode(), server_default='', nullable=False),
    sa.Column('amount_paid', sa.Integer(), server_default='0', nullable=False),
    sa.Column('amount_refunded', sa.Integer(), server_default='0', nullable=False),
    sa.Column('cost', sa.Integer(), server_default='0', nullable=False),
    sa.Column('auto_recalc', sa.Boolean(), server_default='True', nullable=False),
    sa.Column('can_add', sa.Boolean(), server_default='False', nullable=False),
    sa.Column('admin_notes', sa.Unicode(), server_default='', nullable=False),
    sa.Column('status', sa.Integer(), server_default='172070601', nullable=False),
    sa.Column('registered', residue.UTCDateTime(), server_default=sa.text(utcnow_server_default), nullable=False),
    sa.Column('approved', residue.UTCDateTime(), nullable=True),
    sa.Column('leader_id', residue.UUID(), nullable=True),
    sa.ForeignKeyConstraint(['leader_id'], ['attendee.id'], name='fk_leader', use_alter=True),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_group'))
    )
    op.create_table('job',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('type', sa.Integer(), server_default='252034462', nullable=False),
    sa.Column('name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('description', sa.Unicode(), server_default='', nullable=False),
    sa.Column('location', sa.Integer(), nullable=False),
    sa.Column('start_time', residue.UTCDateTime(), nullable=False),
    sa.Column('duration', sa.Integer(), nullable=False),
    sa.Column('weight', sa.Float(), server_default='1', nullable=False),
    sa.Column('slots', sa.Integer(), nullable=False),
    sa.Column('restricted', sa.Boolean(), server_default='False', nullable=False),
    sa.Column('extra15', sa.Boolean(), server_default='False', nullable=False),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_job'))
    )
    op.create_table('page_view_tracking',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('when', residue.UTCDateTime(), nullable=False),
    sa.Column('who', sa.Unicode(), server_default='', nullable=False),
    sa.Column('page', sa.Unicode(), server_default='', nullable=False),
    sa.Column('what', sa.Unicode(), server_default='', nullable=False),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_page_view_tracking'))
    )
    op.create_table('tracking',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('fk_id', residue.UUID(), nullable=False),
    sa.Column('model', sa.Unicode(), server_default='', nullable=False),
    sa.Column('when', residue.UTCDateTime(), nullable=False),
    sa.Column('who', sa.Unicode(), server_default='', nullable=False),
    sa.Column('page', sa.Unicode(), server_default='', nullable=False),
    sa.Column('which', sa.Unicode(), server_default='', nullable=False),
    sa.Column('links', sa.Unicode(), server_default='', nullable=False),
    sa.Column('action', sa.Integer(), nullable=False),
    sa.Column('data', sa.Unicode(), server_default='', nullable=False),
    sa.Column('snapshot', sa.Unicode(), server_default='', nullable=False),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_tracking'))
    )
    op.create_index(op.f('ix_tracking_fk_id'), 'tracking', ['fk_id'], unique=False)
    op.create_table('watch_list',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('first_names', sa.Unicode(), server_default='', nullable=False),
    sa.Column('last_name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('email', sa.Unicode(), server_default='', nullable=False),
    sa.Column('birthdate', sa.Date(), nullable=True),
    sa.Column('reason', sa.Unicode(), server_default='', nullable=False),
    sa.Column('action', sa.Unicode(), server_default='', nullable=False),
    sa.Column('active', sa.Boolean(), server_default='True', nullable=False),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_watch_list'))
    )
    op.create_table('attendee',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('watchlist_id', residue.UUID(), nullable=True),
    sa.Column('group_id', residue.UUID(), nullable=True),
    sa.Column('placeholder', sa.Boolean(), server_default='False', nullable=False),
    sa.Column('first_name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('last_name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('legal_name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('email', sa.Unicode(), server_default='', nullable=False),
    sa.Column('birthdate', sa.Date(), nullable=True),
    sa.Column('age_group', sa.Integer(), server_default='178244408', nullable=True),
    sa.Column('international', sa.Boolean(), server_default='False', nullable=False),
    sa.Column('zip_code', sa.Unicode(), server_default='', nullable=False),
    sa.Column('address1', sa.Unicode(), server_default='', nullable=False),
    sa.Column('address2', sa.Unicode(), server_default='', nullable=False),
    sa.Column('city', sa.Unicode(), server_default='', nullable=False),
    sa.Column('region', sa.Unicode(), server_default='', nullable=False),
    sa.Column('country', sa.Unicode(), server_default='', nullable=False),
    sa.Column('no_cellphone', sa.Boolean(), server_default='False', nullable=False),
    sa.Column('ec_name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('ec_phone', sa.Unicode(), server_default='', nullable=False),
    sa.Column('cellphone', sa.Unicode(), server_default='', nullable=False),
    sa.Column('interests', sa.Unicode(), server_default='', nullable=False),
    sa.Column('found_how', sa.Unicode(), server_default='', nullable=False),
    sa.Column('comments', sa.Unicode(), server_default='', nullable=False),
    sa.Column('for_review', sa.Unicode(), server_default='', nullable=False),
    sa.Column('admin_notes', sa.Unicode(), server_default='', nullable=False),
    sa.Column('public_id', residue.UUID(), nullable=False),
    sa.Column('badge_num', sa.Integer(), nullable=True),
    sa.Column('badge_type', sa.Integer(), server_default='51352218', nullable=False),
    sa.Column('badge_status', sa.Integer(), server_default='163076611', nullable=False),
    sa.Column('ribbon', sa.Integer(), server_default='154973361', nullable=False),
    sa.Column('affiliate', sa.Unicode(), server_default='', nullable=False),
    sa.Column('shirt', sa.Integer(), server_default='0', nullable=False),
    sa.Column('can_spam', sa.Boolean(), server_default='False', nullable=False),
    sa.Column('regdesk_info', sa.Unicode(), server_default='', nullable=False),
    sa.Column('extra_merch', sa.Unicode(), server_default='', nullable=False),
    sa.Column('got_merch', sa.Boolean(), server_default='False', nullable=False),
    sa.Column('reg_station', sa.Integer(), nullable=True),
    sa.Column('registered', residue.UTCDateTime(), server_default=sa.text(utcnow_server_default), nullable=False),
    sa.Column('checked_in', residue.UTCDateTime(), nullable=True),
    sa.Column('paid', sa.Integer(), server_default='121378471', nullable=False),
    sa.Column('overridden_price', sa.Integer(), nullable=True),
    sa.Column('amount_paid', sa.Integer(), server_default='0', nullable=False),
    sa.Column('amount_extra', sa.Integer(), server_default='0', nullable=False),
    sa.Column('payment_method', sa.Integer(), nullable=True),
    sa.Column('amount_refunded', sa.Integer(), server_default='0', nullable=False),
    sa.Column('badge_printed_name', sa.Unicode(), server_default='', nullable=False),
    sa.Column('staffing', sa.Boolean(), server_default='False', nullable=False),
    sa.Column('requested_depts', sa.Unicode(), server_default='', nullable=False),
    sa.Column('assigned_depts', sa.Unicode(), server_default='', nullable=False),
    sa.Column('trusted_depts', sa.Unicode(), server_default='', nullable=False),
    sa.Column('nonshift_hours', sa.Integer(), server_default='0', nullable=False),
    sa.Column('past_years', sa.Unicode(), server_default='', nullable=False),
    sa.Column('can_work_setup', sa.Boolean(), server_default='False', nullable=False),
    sa.Column('can_work_teardown', sa.Boolean(), server_default='False', nullable=False),
    sa.ForeignKeyConstraint(['group_id'], ['group.id'], name=op.f('fk_attendee_group_id_group'), ondelete='SET NULL'),
    sa.ForeignKeyConstraint(['watchlist_id'], ['watch_list.id'], name=op.f('fk_attendee_watchlist_id_watch_list'), ondelete='set null'),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_attendee')),
    *[c for c in [sa.UniqueConstraint('badge_num', deferrable='True', initially='DEFERRED', name=op.f('uq_attendee_badge_num'))] if not is_sqlite]
    )
    op.create_table('admin_account',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.Column('hashed', sa.Unicode(), server_default='', nullable=False),
    sa.Column('access', sa.Unicode(), server_default='', nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_admin_account_attendee_id_attendee')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_admin_account')),
    sa.UniqueConstraint('attendee_id', name=op.f('uq_admin_account_attendee_id'))
    )
    op.create_table('dept_checklist_item',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.Column('slug', sa.Unicode(), server_default='', nullable=False),
    sa.Column('comments', sa.Unicode(), server_default='', nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_dept_checklist_item_attendee_id_attendee')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_dept_checklist_item')),
    sa.UniqueConstraint('attendee_id', 'slug', name='_dept_checklist_item_uniq')
    )
    op.create_table('food_restrictions',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.Column('standard', sa.Unicode(), server_default='', nullable=False),
    sa.Column('sandwich_pref', sa.Unicode(), server_default='', nullable=False),
    sa.Column('freeform', sa.Unicode(), server_default='', nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_food_restrictions_attendee_id_attendee')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_food_restrictions')),
    sa.UniqueConstraint('attendee_id', name=op.f('uq_food_restrictions_attendee_id'))
    )
    op.create_table('m_points_for_cash',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.Column('amount', sa.Integer(), nullable=False),
    sa.Column('when', residue.UTCDateTime(), nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_m_points_for_cash_attendee_id_attendee')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_m_points_for_cash'))
    )
    op.create_table('merch_discount',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.Column('uses', sa.Integer(), nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_merch_discount_attendee_id_attendee')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_merch_discount')),
    sa.UniqueConstraint('attendee_id', name=op.f('uq_merch_discount_attendee_id'))
    )
    op.create_table('merch_pickup',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('picked_up_by_id', residue.UUID(), nullable=False),
    sa.Column('picked_up_for_id', residue.UUID(), nullable=False),
    sa.ForeignKeyConstraint(['picked_up_by_id'], ['attendee.id'], name=op.f('fk_merch_pickup_picked_up_by_id_attendee')),
    sa.ForeignKeyConstraint(['picked_up_for_id'], ['attendee.id'], name=op.f('fk_merch_pickup_picked_up_for_id_attendee')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_merch_pickup')),
    sa.UniqueConstraint('picked_up_for_id', name=op.f('uq_merch_pickup_picked_up_for_id'))
    )
    op.create_table('no_shirt',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_no_shirt_attendee_id_attendee')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_no_shirt')),
    sa.UniqueConstraint('attendee_id', name=op.f('uq_no_shirt_attendee_id'))
    )
    op.create_table('old_m_point_exchange',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.Column('amount', sa.Integer(), nullable=False),
    sa.Column('when', residue.UTCDateTime(), nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_old_m_point_exchange_attendee_id_attendee')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_old_m_point_exchange'))
    )
    op.create_table('sale',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=True),
    sa.Column('what', sa.Unicode(), server_default='', nullable=False),
    sa.Column('cash', sa.Integer(), server_default='0', nullable=False),
    sa.Column('mpoints', sa.Integer(), server_default='0', nullable=False),
    sa.Column('when', residue.UTCDateTime(), nullable=False),
    sa.Column('reg_station', sa.Integer(), nullable=True),
    sa.Column('payment_method', sa.Integer(), server_default='251700478', nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_sale_attendee_id_attendee'), ondelete='set null'),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_sale'))
    )
    op.create_table('shift',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('job_id', residue.UUID(), nullable=False),
    sa.Column('attendee_id', residue.UUID(), nullable=False),
    sa.Column('worked', sa.Integer(), server_default='176686787', nullable=False),
    sa.Column('rating', sa.Integer(), server_default='54944008', nullable=False),
    sa.Column('comment', sa.Unicode(), server_default='', nullable=False),
    sa.ForeignKeyConstraint(['attendee_id'], ['attendee.id'], name=op.f('fk_shift_attendee_id_attendee'), ondelete='cascade'),
    sa.ForeignKeyConstraint(['job_id'], ['job.id'], name=op.f('fk_shift_job_id_job'), ondelete='cascade'),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_shift'))
    )
    op.create_table('password_reset',
    sa.Column('id', residue.UUID(), nullable=False),
    sa.Column('account_id', residue.UUID(), nullable=False),
    sa.Column('generated', residue.UTCDateTime(), server_default=sa.text(utcnow_server_default), nullable=False),
    sa.Column('hashed', sa.Unicode(), server_default='', nullable=False),
    sa.ForeignKeyConstraint(['account_id'], ['admin_account.id'], name=op.f('fk_password_reset_account_id_admin_account')),
    sa.PrimaryKeyConstraint('id', name=op.f('pk_password_reset')),
    sa.UniqueConstraint('account_id', name=op.f('uq_password_reset_account_id'))
    )
Пример #20
0
def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table(
        'mits_team', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('name', sa.Unicode(), server_default='', nullable=False),
        sa.Column('panel_interest',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('want_to_sell',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('address', sa.Unicode(), server_default='', nullable=False),
        sa.Column('submitted', residue.UTCDateTime(), nullable=True),
        sa.Column('applied',
                  residue.UTCDateTime(),
                  server_default=sa.text(utcnow_server_default),
                  nullable=False),
        sa.Column('status',
                  sa.Integer(),
                  server_default='196944751',
                  nullable=False),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_mits_team')))
    op.create_table(
        'mits_game', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('team_id', residue.UUID(), nullable=False),
        sa.Column('name', sa.Unicode(), server_default='', nullable=False),
        sa.Column('promo_blurb',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('description',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('genre', sa.Unicode(), server_default='', nullable=False),
        sa.Column('phase', sa.Integer(), nullable=False),
        sa.Column('min_age', sa.Integer(), nullable=False),
        sa.Column('min_players',
                  sa.Integer(),
                  server_default='2',
                  nullable=False),
        sa.Column('max_players',
                  sa.Integer(),
                  server_default='4',
                  nullable=False),
        sa.Column('personally_own',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('unlicensed',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('professional',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.ForeignKeyConstraint(['team_id'], ['mits_team.id'],
                                name=op.f('fk_mits_game_team_id_mits_team')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_mits_game')))
    op.create_table(
        'mits_picture', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('team_id', residue.UUID(), nullable=False),
        sa.Column('filename', sa.Unicode(), server_default='', nullable=False),
        sa.Column('content_type',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('extension', sa.Unicode(), server_default='',
                  nullable=False),
        sa.Column('description',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['team_id'], ['mits_team.id'],
            name=op.f('fk_mits_picture_team_id_mits_team')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_mits_picture')))
    op.create_table(
        'mits_times', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('team_id', residue.UUID(), nullable=False),
        sa.Column('availability',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('multiple_tables',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.ForeignKeyConstraint(['team_id'], ['mits_team.id'],
                                name=op.f('fk_mits_times_team_id_mits_team')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_mits_times')))
    op.create_table(
        'mits_applicant', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('team_id', residue.UUID(), nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=True),
        sa.Column('primary_contact',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('first_name',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('last_name', sa.Unicode(), server_default='',
                  nullable=False),
        sa.Column('email', sa.Unicode(), server_default='', nullable=False),
        sa.Column('cellphone', sa.Unicode(), server_default='',
                  nullable=False),
        sa.Column('contact_method',
                  sa.Integer(),
                  server_default='42059704',
                  nullable=False),
        sa.Column('declined_hotel_space',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('requested_room_nights',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_mits_applicant_attendee_id_attendee')),
        sa.ForeignKeyConstraint(
            ['team_id'], ['mits_team.id'],
            name=op.f('fk_mits_applicant_team_id_mits_team')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_mits_applicant')))
Пример #21
0
def upgrade():
    op.create_table(
        'tabletop_tournament', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('event_id', residue.UUID(), nullable=False),
        sa.Column('name', sa.Unicode(), server_default='', nullable=False),
        sa.ForeignKeyConstraint(
            ['event_id'], ['event.id'],
            name=op.f('fk_tabletop_tournament_event_id_event')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_tabletop_tournament')),
        sa.UniqueConstraint('event_id',
                            name=op.f('uq_tabletop_tournament_event_id')))
    op.create_table(
        'tabletop_entrant', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('tournament_id', residue.UUID(), nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=False),
        sa.Column('signed_up', residue.UTCDateTime(), nullable=False),
        sa.Column('confirmed',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_tabletop_entrant_attendee_id_attendee')),
        sa.ForeignKeyConstraint(
            ['tournament_id'], ['tabletop_tournament.id'],
            name=op.f(
                'fk_tabletop_entrant_tournament_id_tabletop_tournament')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_tabletop_entrant')),
        sa.UniqueConstraint('tournament_id',
                            'attendee_id',
                            name='_tournament_entrant_uniq'))
    op.create_table(
        'tabletop_game', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('code', sa.Unicode(), server_default='', nullable=False),
        sa.Column('name', sa.Unicode(), server_default='', nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=False),
        sa.Column('returned',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_tabletop_game_attendee_id_attendee')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_tabletop_game')))
    op.create_table(
        'tabletop_checkout', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('game_id', residue.UUID(), nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=False),
        sa.Column('checked_out', residue.UTCDateTime(), nullable=False),
        sa.Column('returned', residue.UTCDateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_tabletop_checkout_attendee_id_attendee')),
        sa.ForeignKeyConstraint(
            ['game_id'], ['tabletop_game.id'],
            name=op.f('fk_tabletop_checkout_game_id_tabletop_game')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_tabletop_checkout')))
    op.create_table(
        'tabletop_sms_reminder', sa.Column('id',
                                           residue.UUID(),
                                           nullable=False),
        sa.Column('entrant_id', residue.UUID(), nullable=False),
        sa.Column('sid', sa.Unicode(), server_default='', nullable=False),
        sa.Column('when', residue.UTCDateTime(), nullable=False),
        sa.Column('text', sa.Unicode(), server_default='', nullable=False),
        sa.ForeignKeyConstraint(
            ['entrant_id'], ['tabletop_entrant.id'],
            name=op.f('fk_tabletop_sms_reminder_entrant_id_tabletop_entrant')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_tabletop_sms_reminder')),
        sa.UniqueConstraint('entrant_id',
                            name=op.f('uq_tabletop_sms_reminder_entrant_id')))
    op.create_table(
        'tabletop_sms_reply', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('entrant_id', residue.UUID(), nullable=True),
        sa.Column('sid', sa.Unicode(), server_default='', nullable=False),
        sa.Column('when', residue.UTCDateTime(), nullable=False),
        sa.Column('text', sa.Unicode(), server_default='', nullable=False),
        sa.ForeignKeyConstraint(
            ['entrant_id'], ['tabletop_entrant.id'],
            name=op.f('fk_tabletop_sms_reply_entrant_id_tabletop_entrant')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_tabletop_sms_reply')))
Пример #22
0
def upgrade():
    op.create_table(
        'event', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('location', sa.Integer(), nullable=False),
        sa.Column('start_time', residue.UTCDateTime(), nullable=False),
        sa.Column('duration', sa.Integer(), nullable=False),
        sa.Column('name', sa.Unicode(), server_default='', nullable=False),
        sa.Column('description',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_event')))
    op.create_table(
        'assigned_panelist', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=False),
        sa.Column('event_id', residue.UUID(), nullable=False),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_assigned_panelist_attendee_id_attendee'),
            ondelete='cascade'),
        sa.ForeignKeyConstraint(
            ['event_id'], ['event.id'],
            name=op.f('fk_assigned_panelist_event_id_event'),
            ondelete='cascade'),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_assigned_panelist')))
    op.create_table(
        'event_feedback', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('event_id', residue.UUID(), nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=False),
        sa.Column('headcount_starting',
                  sa.Integer(),
                  server_default='0',
                  nullable=False),
        sa.Column('headcount_during',
                  sa.Integer(),
                  server_default='0',
                  nullable=False),
        sa.Column('comments', sa.Unicode(), server_default='', nullable=False),
        sa.Column('rating',
                  sa.Integer(),
                  server_default='54944008',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_event_feedback_attendee_id_attendee'),
            ondelete='cascade'),
        sa.ForeignKeyConstraint(['event_id'], ['event.id'],
                                name=op.f('fk_event_feedback_event_id_event')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_event_feedback')))
    op.create_table(
        'panel_application', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('event_id', residue.UUID(), nullable=True),
        sa.Column('poc_id', residue.UUID(), nullable=True),
        sa.Column('name', sa.Unicode(), server_default='', nullable=False),
        sa.Column('length', sa.Unicode(), server_default='', nullable=False),
        sa.Column('description',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('unavailable',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('affiliations',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('past_attendance',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('presentation', sa.Integer(), nullable=False),
        sa.Column('other_presentation',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('tech_needs',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('other_tech_needs',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('panelist_bringing',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('applied',
                  residue.UTCDateTime(),
                  server_default=sa.text(utcnow_server_default),
                  nullable=False),
        sa.Column('status',
                  sa.Integer(),
                  server_default='196944751',
                  nullable=False),
        sa.Column('comments', sa.Unicode(), server_default='', nullable=False),
        sa.ForeignKeyConstraint(
            ['event_id'], ['event.id'],
            name=op.f('fk_panel_application_event_id_event'),
            ondelete='SET NULL'),
        sa.ForeignKeyConstraint(
            ['poc_id'], ['attendee.id'],
            name=op.f('fk_panel_application_poc_id_attendee'),
            ondelete='SET NULL'),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_panel_application')))
    op.create_table(
        'panel_applicant', sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('app_id', residue.UUID(), nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=True),
        sa.Column('submitter',
                  sa.Boolean(),
                  server_default='False',
                  nullable=False),
        sa.Column('first_name',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('last_name', sa.Unicode(), server_default='',
                  nullable=False),
        sa.Column('email', sa.Unicode(), server_default='', nullable=False),
        sa.Column('cellphone', sa.Unicode(), server_default='',
                  nullable=False),
        sa.ForeignKeyConstraint(
            ['app_id'], ['panel_application.id'],
            name=op.f('fk_panel_applicant_app_id_panel_application'),
            ondelete='cascade'),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_panel_applicant_attendee_id_attendee'),
            ondelete='cascade'),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_panel_applicant')))
def upgrade():
    from sqlalchemy.engine import reflection
    inspector = reflection.Inspector(op.get_bind())
    existing_primarykeys = set(
        [inspector.get_pk_constraint('approved_email')['name']])

    # Delete rows in the approved_email table that have duplicate idents
    connection = op.get_bind()
    concat = func.group_concat if is_sqlite else func.string_agg
    duplicates = connection.execute(
        concat(cast(approved_email_table.c.id, String), ',').select().group_by(
            approved_email_table.c.ident).having(func.count() > 1))
    for duplicate_ids in duplicates:
        duplicate_ids = sorted(duplicate_ids[0].split(','))[1:]
        if duplicate_ids:
            connection.execute(approved_email_table.delete().where(
                approved_email_table.c.id.in_(duplicate_ids)))

    op.rename_table('approved_email', 'automated_email')
    if is_sqlite:
        with op.batch_alter_table(
                'automated_email',
                reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.add_column(
                sa.Column('model',
                          sa.Unicode(),
                          server_default='',
                          nullable=False))
            batch_op.add_column(
                sa.Column('subject',
                          sa.Unicode(),
                          server_default='',
                          nullable=False))
            batch_op.add_column(
                sa.Column('body',
                          sa.Unicode(),
                          server_default='',
                          nullable=False))
            batch_op.add_column(
                sa.Column('sender',
                          sa.Unicode(),
                          server_default='',
                          nullable=False))
            batch_op.add_column(
                sa.Column('format',
                          sa.Unicode(),
                          server_default='text',
                          nullable=False))
            batch_op.add_column(
                sa.Column('cc',
                          sa.Unicode(),
                          server_default='',
                          nullable=False))
            batch_op.add_column(
                sa.Column('bcc',
                          sa.Unicode(),
                          server_default='',
                          nullable=False))
            batch_op.add_column(
                sa.Column('approved',
                          sa.Boolean(),
                          server_default='False',
                          nullable=False))
            batch_op.add_column(
                sa.Column('needs_approval',
                          sa.Boolean(),
                          server_default='True',
                          nullable=False))
            batch_op.add_column(
                sa.Column('unapproved_count',
                          sa.Integer(),
                          server_default='0',
                          nullable=False))
            batch_op.add_column(
                sa.Column('allow_post_con',
                          sa.Boolean(),
                          server_default='False',
                          nullable=False))
            batch_op.add_column(
                sa.Column('allow_at_the_con',
                          sa.Boolean(),
                          server_default='False',
                          nullable=False))
            batch_op.add_column(
                sa.Column('active_after', residue.UTCDateTime(),
                          nullable=True))
            batch_op.add_column(
                sa.Column('active_before',
                          residue.UTCDateTime(),
                          nullable=True))
            if 'pk_approved_email' in existing_primarykeys:
                batch_op.drop_constraint('pk_approved_email', type_='primary')
            if 'approved_email_pkey' in existing_primarykeys:
                batch_op.drop_constraint('approved_email_pkey',
                                         type_='primary')
            if 'pk_automated_email' not in existing_primarykeys:
                batch_op.create_primary_key(op.f('pk_automated_email'), ['id'])
            batch_op.create_unique_constraint(op.f('uq_automated_email_ident'),
                                              ['ident'])
            batch_op.create_index(
                op.f('ix_automated_email_active_after_active_before'),
                ['active_after', 'active_before'],
                unique=False)

    else:
        op.add_column(
            'automated_email',
            sa.Column('model', sa.Unicode(), server_default='',
                      nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('subject',
                      sa.Unicode(),
                      server_default='',
                      nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('body', sa.Unicode(), server_default='', nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('sender',
                      sa.Unicode(),
                      server_default='',
                      nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('format',
                      sa.Unicode(),
                      server_default='text',
                      nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('cc', sa.Unicode(), server_default='', nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('bcc', sa.Unicode(), server_default='', nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('approved',
                      sa.Boolean(),
                      server_default='False',
                      nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('needs_approval',
                      sa.Boolean(),
                      server_default='True',
                      nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('unapproved_count',
                      sa.Integer(),
                      server_default='0',
                      nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('allow_post_con',
                      sa.Boolean(),
                      server_default='False',
                      nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('allow_at_the_con',
                      sa.Boolean(),
                      server_default='False',
                      nullable=False))
        op.add_column(
            'automated_email',
            sa.Column('active_after', residue.UTCDateTime(), nullable=True))
        op.add_column(
            'automated_email',
            sa.Column('active_before', residue.UTCDateTime(), nullable=True))
        if 'pk_approved_email' in existing_primarykeys:
            op.drop_constraint('pk_approved_email',
                               'automated_email',
                               type_='primary')
        if 'approved_email_pkey' in existing_primarykeys:
            op.drop_constraint('approved_email_pkey',
                               'automated_email',
                               type_='primary')
        if 'pk_automated_email' not in existing_primarykeys:
            op.create_primary_key(op.f('pk_automated_email'),
                                  'automated_email', ['id'])
        op.create_unique_constraint(op.f('uq_automated_email_ident'),
                                    'automated_email', ['ident'])

    if is_sqlite:
        with op.batch_alter_table(
                'email', reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.alter_column('dest', new_column_name='to')
            batch_op.add_column(
                sa.Column('bcc',
                          sa.Unicode(),
                          server_default='',
                          nullable=False))
            batch_op.add_column(
                sa.Column('cc',
                          sa.Unicode(),
                          server_default='',
                          nullable=False))
            batch_op.add_column(
                sa.Column('automated_email_id', residue.UUID(), nullable=True))
            batch_op.add_column(
                sa.Column('sender',
                          sa.Unicode(),
                          server_default='',
                          nullable=False))
            batch_op.create_foreign_key(
                op.f('fk_email_automated_email_id_automated_email'),
                'automated_email', ['automated_email_id'], ['id'],
                ondelete='set null')
    else:
        op.alter_column('email', 'dest', new_column_name='to')
        op.add_column(
            'email',
            sa.Column('bcc', sa.Unicode(), server_default='', nullable=False))
        op.add_column(
            'email',
            sa.Column('cc', sa.Unicode(), server_default='', nullable=False))
        op.add_column(
            'email',
            sa.Column('automated_email_id', residue.UUID(), nullable=True))
        op.add_column(
            'email',
            sa.Column('sender',
                      sa.Unicode(),
                      server_default='',
                      nullable=False))
        op.create_foreign_key(
            op.f('fk_email_automated_email_id_automated_email'),
            'email',
            'automated_email', ['automated_email_id'], ['id'],
            ondelete='set null')

    connection.execute(automated_email_table.update().values(
        {'approved': True}))

    # Use the ident to try to establish a foreign key relationship
    # between the email and automated_email tables
    automated_emails = connection.execute(automated_email_table.select())
    for automated_email in automated_emails:
        connection.execute(email_table.update().where(
            email_table.c.ident == automated_email.ident).values(
                {'automated_email_id': automated_email.id}))

    if is_sqlite:
        with op.batch_alter_table(
                'attendee', reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.create_index(op.f('ix_attendee_placeholder'),
                                  ['placeholder'],
                                  unique=False)
    else:
        op.create_index(op.f('ix_attendee_placeholder'),
                        'attendee', ['placeholder'],
                        unique=False)
def upgrade():
    if is_sqlite:
        with op.batch_alter_table(
                'attendee', reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.add_column(
                sa.Column('attractions_opt_out',
                          sa.Boolean(),
                          server_default='False',
                          nullable=False))
            batch_op.add_column(
                sa.Column('notification_pref',
                          sa.Integer(),
                          server_default='0',
                          nullable=False))

        with op.batch_alter_table(
                'attraction_event',
                reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.add_column(
                sa.Column('attraction_id', residue.UUID(), nullable=True))

        with op.batch_alter_table(
                'attraction_signup',
                reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.add_column(
                sa.Column('attraction_id', residue.UUID(), nullable=True))
    else:
        op.add_column(
            'attendee',
            sa.Column('attractions_opt_out',
                      sa.Boolean(),
                      server_default='False',
                      nullable=False))
        op.add_column(
            'attendee',
            sa.Column('notification_pref',
                      sa.Integer(),
                      server_default='0',
                      nullable=False))

        op.add_column(
            'attraction_event',
            sa.Column('attraction_id', residue.UUID(), nullable=True))

        op.add_column(
            'attraction_signup',
            sa.Column('attraction_id', residue.UUID(), nullable=True))

        # SQLite does not support UPDATE FROM so skip migrating data for SQLite
        connection = op.get_bind()
        connection.execute(attraction_event_table.update().where(
            attraction_event_table.c.attraction_feature_id ==
            attraction_feature_table.c.id).values(
                attraction_id=attraction_feature_table.c.attraction_id))

        connection.execute(attraction_signup_table.update().where(
            attraction_signup_table.c.attraction_event_id ==
            attraction_event_table.c.id).values(
                attraction_id=attraction_event_table.c.attraction_id))

        connection.execute(attraction_signup_table.update().where(
            attraction_signup_table.c.checkin_time == None).values(
                checkin_time=text("timezone('utc', '0001-01-01 00:00')")))

    if is_sqlite:
        with op.batch_alter_table(
                'attraction_event',
                reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.alter_column('attraction_id', nullable=False)
            batch_op.create_foreign_key(
                op.f('fk_attraction_event_attraction_id_attraction'),
                'attraction', ['attraction_id'], ['id'])
            batch_op.create_index(op.f('ix_attraction_event_attraction_id'),
                                  ['attraction_id'],
                                  unique=False)

        with op.batch_alter_table(
                'attraction_signup',
                reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.alter_column('attraction_id', nullable=False)
            batch_op.create_foreign_key(
                op.f('fk_attraction_signup_attraction_id_attraction'),
                'attraction', ['attraction_id'], ['id'])
            batch_op.alter_column('checkin_time',
                                  existing_type=residue.UTCDateTime(),
                                  nullable=False)
            batch_op.alter_column('signup_time',
                                  existing_type=residue.UTCDateTime(),
                                  server_default=None)
            batch_op.create_index(op.f('ix_attraction_signup_checkin_time'),
                                  ['checkin_time'],
                                  unique=False)

        with op.batch_alter_table(
                'attraction',
                reflect_kwargs=sqlite_reflect_kwargs) as batch_op:
            batch_op.alter_column('required_checkin',
                                  new_column_name='advance_checkin')
            batch_op.alter_column('notifications',
                                  new_column_name='advance_notices')
    else:
        op.alter_column('attraction_event', 'attraction_id', nullable=False)
        op.create_foreign_key(
            op.f('fk_attraction_event_attraction_id_attraction'),
            'attraction_event', 'attraction', ['attraction_id'], ['id'])
        op.create_index(op.f('ix_attraction_event_attraction_id'),
                        'attraction_event', ['attraction_id'],
                        unique=False)

        op.alter_column('attraction_signup', 'attraction_id', nullable=False)
        op.create_foreign_key(
            op.f('fk_attraction_signup_attraction_id_attraction'),
            'attraction_signup', 'attraction', ['attraction_id'], ['id'])
        op.alter_column('attraction_signup',
                        'checkin_time',
                        existing_type=residue.UTCDateTime(),
                        nullable=False)
        op.alter_column('attraction_signup',
                        'signup_time',
                        existing_type=residue.UTCDateTime(),
                        server_default=None)
        op.create_index(op.f('ix_attraction_signup_checkin_time'),
                        'attraction_signup', ['checkin_time'],
                        unique=False)

        op.alter_column('attraction',
                        'required_checkin',
                        new_column_name='advance_checkin')
        op.alter_column('attraction',
                        'notifications',
                        new_column_name='advance_notices')

    op.create_table(
        'attraction_notification',
        sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('attraction_event_id', residue.UUID(), nullable=False),
        sa.Column('attraction_id', residue.UUID(), nullable=False),
        sa.Column('attendee_id', residue.UUID(), nullable=False),
        sa.Column('notification_type', sa.Integer(), nullable=False),
        sa.Column('ident', sa.Unicode(), server_default='', nullable=False),
        sa.Column('sid', sa.Unicode(), server_default='', nullable=False),
        sa.Column('sent_time', residue.UTCDateTime(), nullable=False),
        sa.Column('subject', sa.Unicode(), server_default='', nullable=False),
        sa.Column('body', sa.Unicode(), server_default='', nullable=False),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f('fk_attraction_notification_attendee_id_attendee')),
        sa.ForeignKeyConstraint(
            ['attraction_event_id'], ['attraction_event.id'],
            name=op.
            f('fk_attraction_notification_attraction_event_id_attraction_event'
              )),
        sa.ForeignKeyConstraint(
            ['attraction_id'], ['attraction.id'],
            name=op.f('fk_attraction_notification_attraction_id_attraction')),
        sa.PrimaryKeyConstraint('id', name=op.f('pk_attraction_notification')))
    op.create_index(op.f('ix_attraction_notification_ident'),
                    'attraction_notification', ['ident'],
                    unique=False)

    op.create_table(
        'attraction_notification_reply',
        sa.Column('id', residue.UUID(), nullable=False),
        sa.Column('attraction_event_id', residue.UUID(), nullable=True),
        sa.Column('attraction_id', residue.UUID(), nullable=True),
        sa.Column('attendee_id', residue.UUID(), nullable=True),
        sa.Column('notification_type', sa.Integer(), nullable=False),
        sa.Column('from_phonenumber',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('to_phonenumber',
                  sa.Unicode(),
                  server_default='',
                  nullable=False),
        sa.Column('sid', sa.Unicode(), server_default='', nullable=False),
        sa.Column('received_time', residue.UTCDateTime(), nullable=False),
        sa.Column('sent_time', residue.UTCDateTime(), nullable=False),
        sa.Column('body', sa.Unicode(), server_default='', nullable=False),
        sa.ForeignKeyConstraint(
            ['attendee_id'], ['attendee.id'],
            name=op.f(
                'fk_attraction_notification_reply_attendee_id_attendee')),
        sa.ForeignKeyConstraint(
            ['attraction_event_id'], ['attraction_event.id'],
            name=op.
            f('fk_attraction_notification_reply_attraction_event_id_attraction_event'
              )),
        sa.ForeignKeyConstraint(
            ['attraction_id'], ['attraction.id'],
            name=op.f(
                'fk_attraction_notification_reply_attraction_id_attraction')),
        sa.PrimaryKeyConstraint('id',
                                name=op.f('pk_attraction_notification_reply')))
    op.create_index(op.f('ix_attraction_notification_reply_sid'),
                    'attraction_notification_reply', ['sid'],
                    unique=False)