fossasia/open-event-orga-server

View on GitHub
migrations/versions/9105f9e64cdc_.py

Summary

Maintainability
A
3 hrs
Test Coverage
"""empty message

Revision ID: 9105f9e64cdc
Revises: 16caacf7c5b0
Create Date: 2017-05-23 21:00:04.834721

"""

# revision identifiers, used by Alembic.
revision = '9105f9e64cdc'
down_revision = '16caacf7c5b0'

from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql


def upgrade():
    ### commands auto generated by Alembic - please adjust! ###
    op.rename_table('user', 'temp_user')
    op.create_table('users',
    sa.Column('id', sa.Integer(), nullable=False, autoincrement=True),
    sa.Column('email', sa.String(length=120), nullable=True),
    sa.Column('password', sa.String(length=128), nullable=True),
    sa.Column('reset_password', sa.String(length=128), nullable=True),
    sa.Column('salt', sa.String(length=128), nullable=True),
    sa.Column('avatar', sa.String(), nullable=True),
    sa.Column('tokens', sa.Text(), nullable=True),
    sa.Column('is_super_admin', sa.Boolean(), nullable=True),
    sa.Column('is_admin', sa.Boolean(), nullable=True),
    sa.Column('is_verified', sa.Boolean(), nullable=True),
    sa.Column('signup_at', sa.DateTime(), nullable=True),
    sa.Column('last_accessed_at', sa.DateTime(), nullable=True),
    sa.Column('created_at', sa.DateTime(), nullable=True),
    sa.Column('deleted_at', sa.DateTime(), nullable=True),
    sa.Column('firstname', sa.String(), nullable=True),
    sa.Column('lastname', sa.String(), nullable=True),
    sa.Column('details', sa.String(), nullable=True),
    sa.Column('contact', sa.String(), nullable=True),
    sa.Column('facebook', sa.String(), nullable=True),
    sa.Column('twitter', sa.String(), nullable=True),
    sa.Column('instagram', sa.String(), nullable=True),
    sa.Column('google', sa.String(), nullable=True),
    sa.Column('avatar_uploaded', sa.String(), nullable=True),
    sa.Column('thumbnail', sa.String(), nullable=True),
    sa.Column('small', sa.String(), nullable=True),
    sa.Column('icon', sa.String(), nullable=True),
    sa.PrimaryKeyConstraint('id'),
    sa.UniqueConstraint('email')
    )

    #for missing migrations from the naming schema refactor
    op.drop_constraint(u'session_microlocation_id_fkey', 'sessions', type_='foreignkey')
    op.create_foreign_key(u'sessions_microlocation_id_fkey', 'sessions', 'microlocations', ['microlocation_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'session_session_type_id_fkey','sessions', type_='foreignkey')
    op.create_foreign_key(u'sessions_session_type_id_fkey', 'sessions', 'session_types', ['session_type_id'], ['id'], ondelete = 'CASCADE')
    op.drop_constraint(u'ticket_event_id_fkey', 'tickets', type_='foreignkey')
    op.create_foreign_key(u'tickets_event_id_fkey', 'tickets', 'events', ['event_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'eventsusers_event_id_fkey', 'event_user', type_='foreignkey')
    op.create_foreign_key(u'event_user_event_id_fkey', 'event_user', 'events', ['event_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'social_link_event_id_fkey', 'social_links', type_='foreignkey')
    op.create_foreign_key(u'social_links_event_id_fkey', 'social_links', 'events', ['event_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'role_invite_event_id_fkey', 'role_invites', type_='foreignkey')
    op.create_foreign_key(u'role_invites_event_id_fkey', 'role_invites', 'events', ['event_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'email_notification_event_id_fkey', 'email_notifications', type_='foreignkey')
    op.create_foreign_key(u'email_notifications_event_id_fkey', 'email_notifications', 'events', ['event_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'session_event_id_fkey', 'sessions', type_='foreignkey')
    op.create_foreign_key(u'sessions_event_id_fkey', 'sessions', 'events', ['event_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'session_type_event_id_fkey', 'session_types', type_='foreignkey')
    op.create_foreign_key(u'session_types_event_id_fkey', 'session_types', 'events', ['event_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'microlocation_event_id_fkey', 'microlocations', type_='foreignkey')
    op.create_foreign_key(u'microlocations_event_id_fkey', 'microlocations', 'events', ['event_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'event_copyright_event_id_fkey', 'event_copyrights', type_='foreignkey')
    op.create_foreign_key(u'event_copyrights_event_id_fkey', 'event_copyrights', 'events', ['event_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'role_invite_role_id_fkey', 'role_invites', type_='foreignkey')
    op.create_foreign_key(u'role_invites_role_id_fkey', 'role_invites', 'roles', ['role_id'], ['id'], ondelete = 'CASCADE')

    op.execute(
        "INSERT INTO users SELECT temp_user.* , user_detail.firstname, user_detail.lastname, user_detail.details, user_detail.contact, user_detail.facebook, user_detail.twitter, user_detail.instagram, user_detail.google, user_detail.avatar_uploaded, user_detail.thumbnail, user_detail.small, user_detail.icon FROM temp_user INNER JOIN user_detail ON temp_user.id = user_detail.user_id",
        execution_options=None)

    op.drop_constraint(u'user_detail_user_id_fkey', 'user_detail', type_='foreignkey')
    op.drop_constraint(u'access_codes_marketer_id_fkey', 'access_codes', type_='foreignkey')
    op.create_foreign_key(u'access_codes_marketer_id_fkey', 'access_codes', 'users', ['marketer_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'booked_ticket_user_id_fkey', 'booked_ticket', type_='foreignkey')
    op.create_foreign_key(u'booked_ticket_user_id_fkey', 'booked_ticket', 'users', ['user_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'discount_codes_marketer_id_fkey', 'discount_codes', type_='foreignkey')
    op.create_foreign_key(u'discount_codes_marketer_id_fkey', 'discount_codes', 'users', ['marketer_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'email_notification_user_id_fkey', 'email_notifications', type_='foreignkey')
    op.create_foreign_key(u'email_notifications_user_id_fkey', 'email_notifications', 'users', ['user_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'event_invoices_user_id_fkey', 'event_invoices', type_='foreignkey')
    op.create_foreign_key(u'event_invoices_user_id_fkey', 'event_invoices', 'users', ['user_id'], ['id'], ondelete='SET NULL')
    op.drop_constraint(u'eventsusers_user_id_fkey', 'event_user', type_='foreignkey')
    op.create_foreign_key(u'event_user_user_id_fkey', 'event_user', 'users', ['user_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'import_jobs_user_id_fkey', 'import_jobs', type_='foreignkey')
    op.create_foreign_key(u'import_jobs_user_id_fkey', 'import_jobs', 'users', ['user_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'invites_user_id_fkey', 'invites', type_='foreignkey')
    op.create_foreign_key(u'invites_user_id_fkey', 'invites', 'users', ['user_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'notification_user_id_fkey', 'notification', type_='foreignkey')
    op.create_foreign_key(u'notification_user_id_fkey', 'notification', 'users', ['user_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'orders_user_id_fkey', 'orders', type_='foreignkey')
    op.drop_constraint(u'orders_marketer_id_fkey', 'orders', type_='foreignkey')
    op.create_foreign_key(u'orders_user_id_fkey', 'orders', 'users', ['user_id'], ['id'], ondelete='SET NULL')
    op.create_foreign_key(u'orders_marketer_id_fkey', 'orders', 'users', ['marketer_id'], ['id'], ondelete='SET NULL')
    op.drop_constraint(u'speaker_user_id_fkey', 'speaker', type_='foreignkey')
    op.create_foreign_key(u'speaker_user_id_fkey', 'speaker', 'users', ['user_id'], ['id'], ondelete='SET NULL')
    op.drop_constraint(u'transaction_user_id_fkey', 'transaction', type_='foreignkey')
    op.create_foreign_key(u'transaction_user_id_fkey', 'transaction', 'users', ['user_id'], ['id'])
    op.drop_constraint(u'user_system_role_user_id_fkey', 'user_system_role', type_='foreignkey')
    op.create_foreign_key(u'user_system_role_user_id_fkey', 'user_system_role', 'users', ['user_id'], ['id'], ondelete='CASCADE')
    op.drop_constraint(u'users_events_roles_user_id_fkey', 'users_events_roles', type_='foreignkey')
    op.create_foreign_key(u'users_events_roles_user_id_fkey', 'users_events_roles', 'users', ['user_id'], ['id'], ondelete='CASCADE')

    op.drop_table('temp_user')
    op.drop_table('user_detail')
    ### end Alembic commands ###


def downgrade():
    ### commands auto generated by Alembic - please adjust! ###

    op.create_table('temp_user',
    sa.Column('id', sa.INTEGER(), nullable=False),
    sa.Column('email', sa.VARCHAR(length=120), autoincrement=False, nullable=True),
    sa.Column('password', sa.VARCHAR(length=128), autoincrement=False, nullable=True),
    sa.Column('reset_password', sa.VARCHAR(length=128), autoincrement=False, nullable=True),
    sa.Column('salt', sa.VARCHAR(length=128), autoincrement=False, nullable=True),
    sa.Column('avatar', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('tokens', sa.TEXT(), autoincrement=False, nullable=True),
    sa.Column('is_super_admin', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('is_admin', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('is_verified', sa.BOOLEAN(), autoincrement=False, nullable=True),
    sa.Column('signup_at', postgresql.TIMESTAMP(), autoincrement=False, nullable=True),
    sa.Column('last_accessed_at', postgresql.TIMESTAMP(), autoincrement=False, nullable=True),
    sa.Column('created_at', postgresql.TIMESTAMP(), autoincrement=False, nullable=True),
    sa.Column('deleted_at', postgresql.TIMESTAMP(), autoincrement=False, nullable=True),
    sa.PrimaryKeyConstraint('id', name=u'user_pkey'),
    sa.UniqueConstraint('email', name=u'user_email_key'),
    postgresql_ignore_search_path=False
    )
    op.create_table('user_detail',
    sa.Column('id', sa.INTEGER(), nullable=False),
    sa.Column('firstname', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('lastname', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('details', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('avatar', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('contact', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('facebook', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('twitter', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('instagram', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('google', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('avatar_uploaded', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('thumbnail', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('small', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('icon', sa.VARCHAR(), autoincrement=False, nullable=True),
    sa.Column('user_id', sa.INTEGER(), autoincrement=False, nullable=True),
    sa.PrimaryKeyConstraint('id', name=u'user_detail_pkey')
    )

    op.drop_constraint(u'users_events_roles_user_id_fkey', 'users_events_roles', type_='foreignkey')
    op.create_foreign_key(u'users_events_roles_user_id_fkey', 'users_events_roles', 'temp_user', ['user_id'], ['id'],
                          ondelete=u'CASCADE')
    op.drop_constraint(u'user_system_role_user_id_fkey', 'user_system_role', type_='foreignkey')
    op.create_foreign_key(u'user_system_role_user_id_fkey', 'user_system_role', 'temp_user', ['user_id'], ['id'],
                          ondelete=u'CASCADE')
    op.drop_constraint(u'transaction_user_id_fkey', 'transaction', type_='foreignkey')
    op.create_foreign_key(u'transaction_user_id_fkey', 'transaction', 'temp_user', ['user_id'], ['id'])
    op.drop_constraint(u'speaker_user_id_fkey', 'speaker', type_='foreignkey')
    op.create_foreign_key(u'speaker_user_id_fkey', 'speaker', 'temp_user', ['user_id'], ['id'], ondelete=u'SET NULL')
    op.drop_constraint(u'orders_marketer_id_fkey', 'orders', type_='foreignkey')
    op.drop_constraint(u'orders_user_id_fkey', 'orders', type_='foreignkey')
    op.create_foreign_key(u'orders_marketer_id_fkey', 'orders', 'temp_user', ['marketer_id'], ['id'],
                          ondelete=u'SET NULL')
    op.create_foreign_key(u'orders_user_id_fkey', 'orders', 'temp_user', ['user_id'], ['id'], ondelete=u'SET NULL')
    op.drop_constraint(u'notification_user_id_fkey', 'notification', type_='foreignkey')
    op.create_foreign_key(u'notification_user_id_fkey', 'notification', 'temp_user', ['user_id'], ['id'],
                          ondelete=u'CASCADE')
    op.drop_constraint(u'invites_user_id_fkey', 'invites', type_='foreignkey')
    op.create_foreign_key(u'invites_user_id_fkey', 'invites', 'temp_user', ['user_id'], ['id'], ondelete=u'CASCADE')
    op.drop_constraint(u'import_jobs_user_id_fkey', 'import_jobs', type_='foreignkey')
    op.create_foreign_key(u'import_jobs_user_id_fkey', 'import_jobs', 'temp_user', ['user_id'], ['id'],
                          ondelete=u'CASCADE')
    op.drop_constraint(u'event_user_user_id_fkey', 'event_user', type_='foreignkey')
    op.create_foreign_key(u'event_user_user_id_fkey', 'event_user', 'temp_user', ['user_id'], ['id'],
                          ondelete=u'CASCADE')
    op.drop_constraint(u'event_invoices_user_id_fkey', 'event_invoices', type_='foreignkey')
    op.create_foreign_key(u'event_invoices_user_id_fkey', 'event_invoices', 'temp_user', ['user_id'], ['id'],
                          ondelete=u'SET NULL')
    op.drop_constraint(u'email_notifications_user_id_fkey', 'email_notifications', type_='foreignkey')
    op.create_foreign_key(u'email_notifications_user_id_fkey', 'email_notifications', 'temp_user', ['user_id'], ['id'],
                          ondelete=u'CASCADE')
    op.drop_constraint(u'discount_codes_marketer_id_fkey', 'discount_codes', type_='foreignkey')
    op.create_foreign_key(u'discount_codes_marketer_id_fkey', 'discount_codes', 'temp_user', ['marketer_id'], ['id'],
                          ondelete=u'CASCADE')
    op.drop_constraint(u'booked_ticket_user_id_fkey', 'booked_ticket', type_='foreignkey')
    op.create_foreign_key(u'booked_ticket_user_id_fkey', 'booked_ticket', 'temp_user', ['user_id'], ['id'],
                          ondelete=u'CASCADE')
    op.drop_constraint(u'access_codes_marketer_id_fkey', 'access_codes', type_='foreignkey')
    op.create_foreign_key(u'access_codes_marketer_id_fkey', 'access_codes', 'temp_user', ['marketer_id'], ['id'],
                          ondelete=u'CASCADE')
    op.create_foreign_key(u'user_detail_user_id_fkey', 'user_detail', 'temp_user', ['user_id'], ['id'], ondelete='CASCADE')

    op.execute("INSERT INTO temp_user SELECT id, email, password, reset_password, salt, avatar, tokens, is_super_admin, is_admin, is_verified, signup_at, last_accessed_at, created_at, deleted_at from users")
    op.execute("INSERT INTO user_detail SELECT id, firstname, lastname, details, avatar, contact, facebook, twitter, instagram, google, avatar_uploaded, thumbnail, small, icon, id from users")
    op.rename_table('temp_user', 'user')
    op.drop_table('users')
    ### end Alembic commands ###