def downgrade(migrate_engine):
    meta = MetaData(bind=migrate_engine)
    service_images = Table('service_images', meta, autoload=True)
    tenant_id = service_images.c.tenant_id
    tenant_id.alter(server_default=defaults['tenant_id']['old'], nullable=True)
    availability_zone = service_images.c.availability_zone
    availability_zone.alter(server_default=defaults['availability_zone']['old'], nullable=True)

    conn = migrate_engine.connect()
    trans = conn.begin()
    try:
      update = service_images.update()\
                             .where(service_images.c.tenant_id==defaults['tenant_id']['new'] and service_images.c.availability_zone==defaults['availability_zone']['new'])\
                             .values(tenant_id=defaults['tenant_id']['old'], availability_zone=defaults['availability_zone']['old'])
      conn.execute(update)
      trans.commit()
    except:
      trans.rollback()
      raise
def upgrade(migrate_engine):
    meta = MetaData(bind=migrate_engine)
    instances = Table('instances', meta, autoload=True)

    # Update existing records and set availability_zone = 'az2'
    conn = migrate_engine.connect()
    trans = conn.begin()
    try:
        update = instances.update().where(instances.c.availability_zone==None).values(availability_zone='az-2.region-a.geo-1')
        conn.execute(update)
        trans.commit()
    except:
        trans.rollback()
        raise

    remote_id = instances.c.remote_id
    remote_id.alter(type=Integer())

    availability_zone = instances.c.availability_zone
    availability_zone.alter(nullable=False)