From 8c83cf02417ffd03d4e893a9d9b785d267f80ca7 Mon Sep 17 00:00:00 2001 From: Aurélien Bompard Date: Mon, 7 Dec 2015 18:38:40 +0100 Subject: Handle data migration --- .../alembic/versions/47294d3a604_pendable_indexes.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/mailman/database/alembic/versions/47294d3a604_pendable_indexes.py b/src/mailman/database/alembic/versions/47294d3a604_pendable_indexes.py index 888a6544c..4a55b7347 100644 --- a/src/mailman/database/alembic/versions/47294d3a604_pendable_indexes.py +++ b/src/mailman/database/alembic/versions/47294d3a604_pendable_indexes.py @@ -98,3 +98,17 @@ def downgrade(): op.drop_index(op.f('ix_pendedkeyvalue_key'), table_name='pendedkeyvalue') op.drop_index(op.f('ix_pended_token'), table_name='pended') op.drop_index(op.f('ix_pended_expiration_date'), table_name='pended') + # Data migration. + connection = op.get_bind() + # Remove the introduced type keys. + connection.execute(keyvalue_table.delete().where(sa.and_( + keyvalue_table.c.key == 'type', + keyvalue_table.c.value.in_(TYPE_CLUES.values()) + ))) + # Convert the other type keys to JSON. + keyvalues = connection.execute(keyvalue_table.select().where( + keyvalue_table.c.key == 'type')).fetchall() + for keyvalue in keyvalues: + connection.execute(keyvalue_table.update().where( + keyvalue_table.c.id == keyvalue['id'] + ).values(value=json.dumps(keyvalue['value']))) -- cgit v1.2.3-70-g09d2