From fdc62ceac4e62718e454a88510800df4d6fb36c7 Mon Sep 17 00:00:00 2001 From: ivis-miyachi Date: Wed, 24 Jun 2026 13:17:34 +0900 Subject: [PATCH 1/2] fix migrate tool(#61275) --- tools/update/migrate_item_type_mapping.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/tools/update/migrate_item_type_mapping.py b/tools/update/migrate_item_type_mapping.py index cfcf184cc0..a612ccfe11 100644 --- a/tools/update/migrate_item_type_mapping.py +++ b/tools/update/migrate_item_type_mapping.py @@ -109,28 +109,33 @@ def atomic_migration_stream(*models: Meta): """Context manager to create temporary tables for migration.""" start = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") info(f"Migration started at {start}.") - + from sqlalchemy.orm import sessionmaker create_temp_tables(*models) - - stream: ResultProxy = db.engine.execute( - text(f"SELECT * FROM {models[0].__tablename__}_tmp ORDER BY id ASC"), - execution_options={"stream_results": True} + Session = sessionmaker(bind=db.engine) + temp_session = Session() + + stream: ResultProxy = temp_session.execute( + text("SELECT * FROM {}_tmp ORDER BY id ASC".format( + models[0].__tablename__ + )).execution_options(stream_results=True) ) try: yield stream except BaseException as e: stream.close() + temp_session.close() faild = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") error(f"Migration failed at {faild}.") traceback.print_exc() - + db.session.rollback() recover_from_temp_tables(*models) drop_temp_tables(*models) else: stream.close() + temp_session.close() drop_temp_tables(*models) end = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") From fb804ba9f86f78b4acf70d34cd999598f56dacef Mon Sep 17 00:00:00 2001 From: ivis-miyachi Date: Thu, 25 Jun 2026 10:09:42 +0900 Subject: [PATCH 2/2] fix migrate tool(#61275) --- tools/update/migrate_item_type_mapping.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/update/migrate_item_type_mapping.py b/tools/update/migrate_item_type_mapping.py index a612ccfe11..23012439c3 100644 --- a/tools/update/migrate_item_type_mapping.py +++ b/tools/update/migrate_item_type_mapping.py @@ -160,7 +160,6 @@ def create_or_update_mapping(created, updated, item_type_id, mapping): if obj: obj.updated = updated obj.mapping = mapping - db.session.merge(obj) print(f" Updated: item_type_id={item_type_id}, version_id={obj.version_id}") else: obj = ItemTypeMapping(