diff --git a/alembic/versions/1fa46383a9d3_add_is_bot_field_to_puppets.py b/alembic/versions/1fa46383a9d3_add_is_bot_field_to_puppets.py index 81a63015..00e1d6be 100644 --- a/alembic/versions/1fa46383a9d3_add_is_bot_field_to_puppets.py +++ b/alembic/versions/1fa46383a9d3_add_is_bot_field_to_puppets.py @@ -21,4 +21,5 @@ def upgrade(): def downgrade(): - op.drop_column('puppet', 'is_bot') + with op.batch_alter_table("puppet") as batch_op: + batch_op.drop_column('is_bot') diff --git a/alembic/versions/30eca60587f1_add_megagroup_field_to_portals.py b/alembic/versions/30eca60587f1_add_megagroup_field_to_portals.py index cb91d09f..35a0db39 100644 --- a/alembic/versions/30eca60587f1_add_megagroup_field_to_portals.py +++ b/alembic/versions/30eca60587f1_add_megagroup_field_to_portals.py @@ -20,4 +20,5 @@ def upgrade(): def downgrade(): - op.drop_column('portal', 'megagroup') + with op.batch_alter_table("portal") as batch_op: + batch_op.drop_column('megagroup') diff --git a/alembic/versions/6ca3d74d51e4_move_state_store_to_main_database.py b/alembic/versions/6ca3d74d51e4_move_state_store_to_main_database.py index b5cfe450..f9002a00 100644 --- a/alembic/versions/6ca3d74d51e4_move_state_store_to_main_database.py +++ b/alembic/versions/6ca3d74d51e4_move_state_store_to_main_database.py @@ -72,10 +72,17 @@ def upgrade(): sa.Column("avatar_url", sa.String(), nullable=True), sa.PrimaryKeyConstraint("room_id", "user_id")) + try: + migrate_state_store() + except Exception as e: + print("Failed to migrate state store:", e) + print("Migrating the state store isn't required, but you can retry by alembic downgrading " + "to revision 2228d49c383f and upgrading again.") + + +def migrate_state_store(): conn = op.get_bind() - session = orm.sessionmaker(bind=conn) - session = orm.scoping.scoped_session(session) - Puppet.query = session.query_property() + session = orm.sessionmaker(bind=conn)() # type: orm.Session try: with open("mx-state.json") as file: @@ -99,7 +106,7 @@ def upgrade(): if not match: continue - puppet = Puppet.query.get(match.group(1)) + puppet = session.query(Puppet).get(match.group(1)) if not puppet: continue diff --git a/alembic/versions/7d47d84380b6_add_timestamp_to_telegramfile.py b/alembic/versions/7d47d84380b6_add_timestamp_to_telegramfile.py index 0a0d3cd9..3ab6c8d3 100644 --- a/alembic/versions/7d47d84380b6_add_timestamp_to_telegramfile.py +++ b/alembic/versions/7d47d84380b6_add_timestamp_to_telegramfile.py @@ -22,4 +22,5 @@ def upgrade(): def downgrade(): - op.drop_column('telegram_file', 'timestamp') + with op.batch_alter_table("telegram_file") as batch_op: + batch_op.drop_column('timestamp') diff --git a/alembic/versions/bcfefa1f1299_add_displayname_source_fields_for_.py b/alembic/versions/bcfefa1f1299_add_displayname_source_fields_for_.py index 42ad0d16..7f12225b 100644 --- a/alembic/versions/bcfefa1f1299_add_displayname_source_fields_for_.py +++ b/alembic/versions/bcfefa1f1299_add_displayname_source_fields_for_.py @@ -20,4 +20,5 @@ def upgrade(): def downgrade(): - op.drop_column('puppet', 'displayname_source') + with op.batch_alter_table("puppet") as batch_op: + batch_op.drop_column('displayname_source')