From a2c0961498802efa308cd3614c1bba55af5d4352 Mon Sep 17 00:00:00 2001 From: thomaswoehlke <thomas.woehlke@gmail.com> Date: Sun, 2 May 2021 12:41:06 +0200 Subject: [PATCH] working on: 0.0.32 Release --- .../application/application_model.py | 22 ++++++++++------ src/covid19/blueprints/who/who_model.py | 22 ++++++++++------ .../blueprints/who/who_service_update.py | 26 +++++++++++++------ 3 files changed, 46 insertions(+), 24 deletions(-) diff --git a/src/covid19/blueprints/application/application_model.py b/src/covid19/blueprints/application/application_model.py index 2faf2ae9..5392090a 100644 --- a/src/covid19/blueprints/application/application_model.py +++ b/src/covid19/blueprints/application/application_model.py @@ -98,10 +98,13 @@ class ApplicationDateReported(db.Model): @classmethod def remove_all(cls): - for one in cls.get_all(): - db.session.delete(one) - db.session.commit() - return None + num_rows_deleted = 0 + try: + num_rows_deleted = db.session.query(cls).delete() + db.session.commit() + except Exception: + db.session.rollback() + return num_rows_deleted @classmethod def get_all_as_page(cls, page: int): @@ -177,10 +180,13 @@ class ApplicationRegion(db.Model): @classmethod def remove_all(cls): - for one in cls.get_all(): - db.session.delete(one) - db.session.commit() - return None + num_rows_deleted = 0 + try: + num_rows_deleted = db.session.query(cls).delete() + db.session.commit() + except Exception: + db.session.rollback() + return num_rows_deleted @classmethod def get_all(cls): diff --git a/src/covid19/blueprints/who/who_model.py b/src/covid19/blueprints/who/who_model.py index e3b0cb1e..475cf831 100644 --- a/src/covid19/blueprints/who/who_model.py +++ b/src/covid19/blueprints/who/who_model.py @@ -83,10 +83,13 @@ class WhoCountry(db.Model): @classmethod def remove_all(cls): - for one in cls.get_all(): - db.session.delete(one) - db.session.commit() - return None + num_rows_deleted = 0 + try: + num_rows_deleted = db.session.query(cls).delete() + db.session.commit() + except Exception: + db.session.rollback() + return num_rows_deleted @classmethod def get_all_as_page(cls, page): @@ -191,10 +194,13 @@ class WhoData(db.Model): @classmethod def remove_all(cls): - for one in cls.get_all(): - db.session.delete(one) - db.session.commit() - return None + num_rows_deleted = 0 + try: + num_rows_deleted = db.session.query(cls).delete() + db.session.commit() + except: + db.session.rollback() + return num_rows_deleted @classmethod def get_all_as_page(cls, page): diff --git a/src/covid19/blueprints/who/who_service_update.py b/src/covid19/blueprints/who/who_service_update.py index be9747d3..82872941 100644 --- a/src/covid19/blueprints/who/who_service_update.py +++ b/src/covid19/blueprints/who/who_service_update.py @@ -88,6 +88,8 @@ class WhoServiceUpdateFull(WhoServiceUpdateBase): WhoData.remove_all() new_dates_reported_from_import = WhoImport.get_dates_reported_as_array() i = 0 + d = 0 + k = 0 for my_date_reported in new_dates_reported_from_import: my_date = WhoDateReported.get_by_date_reported(my_date_reported) for result_item in WhoImport.get_for_one_day(my_date_reported): @@ -104,9 +106,14 @@ class WhoServiceUpdateFull(WhoServiceUpdateBase): result_item.row_imported = True db.session.add(result_item) i += 1 - db.session.commit() - app.logger.info(" update WHO initial " + str(my_date) + " ... " + str(i) + " rows") - app.logger.info(" update WHO initial : "+str(i)+" total rows") + k += 1 + d += 1 + if d % 7 == 0: + db.session.commit() + app.logger.info(" full update WHO " + str(my_date) + " ... " + str(i) + " rows ( " + str(k) + " )") + k = 0 + db.session.commit() + app.logger.info(" full update WHO : "+str(i)+" total rows") app.logger.info(" WhoServiceUpdateFull.__full_update_data [done]") app.logger.info("------------------------------------------------------------") return self @@ -231,6 +238,8 @@ class WhoServiceUpdate(WhoServiceUpdateBase): app.logger.info("------------------------------------------------------------") new_dates_reported_from_import = self.__who_import_get_new_dates_as_array() i = 0 + d = 0 + k = 0 for my_date_reported in new_dates_reported_from_import: app.logger.info(my_date_reported) my_date = WhoDateReported.find_by_date_reported(my_date_reported) @@ -239,7 +248,6 @@ class WhoServiceUpdate(WhoServiceUpdateBase): db.session.add(myday) db.session.commit() my_date = WhoDateReported.get_by_date_reported(my_date_reported) - k = 0 for result_item in WhoImport.get_for_one_day(my_date_reported): if result_item.country_code == "": my_country = WhoCountry.get_by_country(result_item.country) @@ -256,10 +264,12 @@ class WhoServiceUpdate(WhoServiceUpdateBase): db.session.add(o) i += 1 k += 1 - if i % 2000 == 0: - app.logger.info(" update WHO incremental ... "+str(i)+" rows") - db.session.commit() - app.logger.info(" update WHO incremental ... " + str(i) + " rows [" + str(my_date) + "] (" + str(k) + ")") + d += 1 + if d % 7 == 0: + db.session.commit() + app.logger.info(" update WHO " + str(my_date) + " ... " + str(i) + " rows ( " + str(k) + " )") + k = 0 + db.session.commit() app.logger.info(" update WHO incremental : "+str(i)+" rows total") app.logger.info(" WhoServiceUpdate.__update_data [done]") app.logger.info("------------------------------------------------------------") -- GitLab