115def downgrade():
  116    for table_name, column_list in itertools.groupby(COLUMNS, operator.itemgetter(0)):
  117        subject = table(table_name)
  118        values_exprs = {}
  119        for _, column_name in column_list:
  120            subject.append_column(column(column_name))
  121            values_exprs[column_name] = cast(
  122                case((or_(subject.c[column_name] == text("'yes'"),
  123                          subject.c[column_name] == text("'1'"),
  124                          subject.c[column_name] == text("'on'"),
  125                          subject.c[column_name] == text("'true'")), text("'yes'")),
  126                     else_=text("'no'")),
  127                ast_bool_values)
  128 
  129        op.execute(
  130            subject.update().
values(values_exprs)
 
  131        )
  132 
  133    for table_name, column_list in itertools.groupby(COLUMNS, operator.itemgetter(0)):
  134        with op.batch_alter_table(table_name) as batch_op:
  135            for _, column_name in column_list:
  136                batch_op.alter_column(column_name,
  137                                      type_=yesno_values,
  138                                      existing_type=ast_bool_values,
  139                                      postgresql_using='"{}"::text::{}'.format(column_name, YESNO_NAME))