# -*- coding: utf-8; -*- """make enabled datetime Revision ID: fd1df160539a Revises: a2676d3dfc1e Create Date: 2019-01-25 18:41:01.652823 """ from __future__ import unicode_literals, absolute_import # revision identifiers, used by Alembic. revision = 'fd1df160539a' down_revision = 'a2676d3dfc1e' branch_labels = None depends_on = None import datetime from alembic import op import sqlalchemy as sa import rattail.db.types def upgrade(): now = datetime.datetime.utcnow() # client op.add_column('client', sa.Column('new_enabled', sa.DateTime(), nullable=True)) client = sa.sql.table('client', sa.sql.column('enabled'), sa.sql.column('new_enabled')) op.execute(client.update()\ .where(client.c.enabled == True)\ .values({'new_enabled': now})) op.drop_column('client', 'enabled') op.alter_column('client', 'new_enabled', new_column_name='enabled') # probe op.add_column('probe', sa.Column('new_enabled', sa.DateTime(), nullable=True)) probe = sa.sql.table('probe', sa.sql.column('enabled'), sa.sql.column('new_enabled')) op.execute(probe.update()\ .where(probe.c.enabled == True)\ .values({'new_enabled': now})) op.drop_column('probe', 'enabled') op.alter_column('probe', 'new_enabled', new_column_name='enabled') def downgrade(): # probe op.add_column('probe', sa.Column('old_enabled', sa.Boolean(), nullable=True)) probe = sa.sql.table('probe', sa.sql.column('enabled'), sa.sql.column('old_enabled')) op.execute(probe.update()\ .where(probe.c.enabled != None)\ .values({'old_enabled': True})) op.execute(probe.update()\ .where(probe.c.enabled == None)\ .values({'old_enabled': False})) op.drop_column('probe', 'enabled') op.alter_column('probe', 'old_enabled', new_column_name='enabled', nullable=False) # client op.add_column('client', sa.Column('old_enabled', sa.Boolean(), nullable=True)) client = sa.sql.table('client', sa.sql.column('enabled'), sa.sql.column('old_enabled')) op.execute(client.update()\ .where(client.c.enabled != None)\ .values({'old_enabled': True})) op.execute(client.update()\ .where(client.c.enabled == None)\ .values({'old_enabled': False})) op.drop_column('client', 'enabled') op.alter_column('client', 'old_enabled', new_column_name='enabled', nullable=False)