atst/alembic/versions/02d11579a581_add_email_to_invite.py
2018-11-27 17:03:31 -05:00

51 lines
1.2 KiB
Python

"""Add email to invite
Revision ID: 02d11579a581
Revises: 4f46aecb337f
Create Date: 2018-11-19 14:51:33.178358
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.sql import text
# revision identifiers, used by Alembic.
revision = '02d11579a581'
down_revision = '4f46aecb337f'
branch_labels = None
depends_on = None
def upgrade():
op.add_column('invitations', sa.Column('email', sa.String()))
conn = op.get_bind()
# Add non-null value to email column
conn.execute(
text(
"""
insert into invitations (email)
select u.email
from invitations i
inner join workspace_roles wr on i.workspace_role_id = wr.id
inner join users u on wr.user_id = u.id
where i.email is null;
"""
)
)
conn.execute(
text(
"""
update invitations
set email = 'example@example.com'
where email is null;
"""
)
)
op.alter_column('invitations', 'email', nullable=False)
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('invitations', 'email')
# ### end Alembic commands ###