|
|
|
""" Set the nocase collation on the user and alias tables
|
|
|
|
|
|
|
|
Revision ID: 9c28df23f77e
|
|
|
|
Revises: c162ac88012a
|
|
|
|
Create Date: 2017-10-29 13:28:29.155754
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
|
|
revision = '9c28df23f77e'
|
|
|
|
down_revision = 'c162ac88012a'
|
|
|
|
|
|
|
|
from alembic import op
|
|
|
|
import sqlalchemy as sa
|
|
|
|
from flask import current_app as app
|
|
|
|
from citext import CIText
|
|
|
|
|
|
|
|
def upgrade():
|
|
|
|
if app.config['DB_FLAVOR'] == "postgresql":
|
|
|
|
email_type = CIText()
|
|
|
|
with op.batch_alter_table('fetch') as batch:
|
|
|
|
batch.drop_constraint('fetch_user_email_fkey')
|
|
|
|
with op.batch_alter_table('manager') as batch:
|
|
|
|
batch.drop_constraint('manager_user_email_fkey')
|
|
|
|
else:
|
|
|
|
email_type = sa.String(length=255, collation="NOCASE")
|
|
|
|
|
|
|
|
with op.batch_alter_table('user') as batch:
|
|
|
|
batch.alter_column('email', type_=email_type)
|
|
|
|
with op.batch_alter_table('alias') as batch:
|
|
|
|
batch.alter_column('email', type_=email_type)
|
|
|
|
with op.batch_alter_table('fetch') as batch:
|
|
|
|
batch.alter_column('user_email', type_=email_type)
|
|
|
|
if app.config['DB_FLAVOR'] == "postgresql":
|
|
|
|
batch.create_foreign_key("fetch_user_email_fkey", "user", ["user_email"], ["email"])
|
|
|
|
with op.batch_alter_table('manager') as batch:
|
|
|
|
batch.alter_column('user_email', type_=email_type)
|
|
|
|
if app.config['DB_FLAVOR'] == "postgresql":
|
|
|
|
batch.create_foreign_key("manager_user_email_fkey", "user", ["user_email"], ["email"])
|
|
|
|
|
|
|
|
|
|
|
|
def downgrade():
|
|
|
|
with op.batch_alter_table('user') as batch:
|
|
|
|
batch.alter_column('email', type_=sa.String(length=255))
|
|
|
|
with op.batch_alter_table('alias') as batch:
|
|
|
|
batch.alter_column('email', type_=sa.String(length=255))
|