From c9c6a11593e9ee1e797b40942fc9c0504e5491b3 Mon Sep 17 00:00:00 2001 From: Windpicker-owo <3431391539@qq.com> Date: Fri, 28 Nov 2025 00:08:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E4=B8=AD=E7=9A=84=E4=BA=8B=E5=8A=A1=E5=A4=84?= =?UTF-8?q?=E7=90=86=EF=BC=8C=E7=A1=AE=E4=BF=9D=E6=AF=8F=E5=BC=A0=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E8=BF=81=E7=A7=BB=E5=9C=A8=E7=8B=AC=E7=AB=8B=E4=BA=8B?= =?UTF-8?q?=E5=8A=A1=E4=B8=AD=E8=BF=9B=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/migrate_database.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/scripts/migrate_database.py b/scripts/migrate_database.py index 90ff89493..9b13cd675 100644 --- a/scripts/migrate_database.py +++ b/scripts/migrate_database.py @@ -663,20 +663,21 @@ class DatabaseMigrator: self._drop_target_tables() # 开始迁移 - with self.source_engine.connect() as source_conn, self.target_engine.connect() as target_conn: + with self.source_engine.connect() as source_conn: for source_table in tables: try: # 在目标库中创建表结构 target_table = copy_table_structure(source_table, MetaData(), self.target_engine) - # 迁移数据 - migrated_rows, error_count = migrate_table_data( - source_conn, - target_conn, - source_table, - target_table, - batch_size=self.batch_size, - ) + # 每张表单独事务,避免退出上下文被自动回滚 + with self.target_engine.begin() as target_conn: + migrated_rows, error_count = migrate_table_data( + source_conn, + target_conn, + source_table, + target_table, + batch_size=self.batch_size, + ) self.stats["tables_migrated"] += 1 self.stats["rows_migrated"] += migrated_rows