From ccd9dabe751f3a43573e4c5ba637e9dceb84d09b Mon Sep 17 00:00:00 2001 From: Jessica Tallon Date: Mon, 28 Dec 2015 12:55:33 +0000 Subject: [PATCH] Fix #5368 - Improve test efficiancy There were a number of tests where lots of models where being iterated through and then at the end committing them. The problem is all the changes had to be kept in memory or on disk somewhere before they were commit to the database. This fix commits each change as it's being made, allowing resources to be freed and fixing some of the inefficiencies --- mediagoblin/db/migrations.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 461b9c0a..1c159511 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -1371,8 +1371,9 @@ def migrate_data_foreign_keys(db): temp_object=target_gmr.inserted_primary_key[0] )) - # Commit to the database. - db.commit() + # Commit to the database. We're doing it here rather than outside the + # loop because if the server has a lot of data this can cause problems. + db.commit() @RegisterMigration(30, MIGRATIONS) def rename_and_remove_object_and_target(db): @@ -1522,7 +1523,7 @@ def federation_user_migrate_data(db): type=LocalUser.__mapper_args__["polymorphic_identity"] )) - db.commit() + db.commit() class User_vR2(declarative_base()): __tablename__ = "rename__users" @@ -1618,7 +1619,7 @@ def federation_media_entry(db): remote=False )) - db.commit() + db.commit() @RegisterMigration(36, MIGRATIONS) def create_oauth1_dummies(db): -- 2.25.1