From 44d3497853593336cd5f9198eadf5a4cac47cd57 Mon Sep 17 00:00:00 2001
From: thomaswoehlke <thomas.woehlke@gmail.com>
Date: Tue, 19 Jan 2021 16:31:20 +0100
Subject: [PATCH] ### 0.0.9 Release * Fixed #18 /europe/update: Download *
 Fixed #19 /europe/update: Import File to DB * Issue #20 /europe/update:
 Update DB * Issue #21 update_date_reported * Issue #22 update_continent *
 Issue #23 update_country * Issue #24 update_data * Issue #3 ORM: 3NF for
 ecdc_europa_data_import * Issue #4 data update for 3NF
 ecdc_europa_data_import

---
 org/woehlke/covid19/europe/europe_model.py    | 10 ++++----
 .../covid19/europe/europe_service_update.py   | 25 ++++++++++++++++---
 2 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/org/woehlke/covid19/europe/europe_model.py b/org/woehlke/covid19/europe/europe_model.py
index 8fab36c2..384b6d9b 100644
--- a/org/woehlke/covid19/europe/europe_model.py
+++ b/org/woehlke/covid19/europe/europe_model.py
@@ -18,7 +18,7 @@ class EuropeDataImportTable(db.Model):
 
     @classmethod
     def remove_all(cls):
-        db.session.execute("delete from " + cls.__tablename__)
+        db.session.execute("delete from " + cls.__tablename__ + " cascade")
         db.session.commit()
         return None
 
@@ -81,7 +81,7 @@ class EuropeDateReported(db.Model):
 
     @classmethod
     def remove_all(cls):
-        db.session.execute("delete from " + cls.__tablename__)
+        db.session.execute("delete from " + cls.__tablename__ + " cascade")
         db.session.commit()
         return None
 
@@ -106,7 +106,7 @@ class EuropeContinent(db.Model):
 
     @classmethod
     def remove_all(cls):
-        db.session.execute("delete from " + cls.__tablename__)
+        db.session.execute("delete from " + cls.__tablename__ + " cascade")
         db.session.commit()
         return None
 
@@ -137,7 +137,7 @@ class EuropeCountry(db.Model):
 
     @classmethod
     def remove_all(cls):
-        db.session.execute("delete from " + cls.__tablename__)
+        db.session.execute("delete from " + cls.__tablename__ + " cascade")
         db.session.commit()
         return None
 
@@ -170,7 +170,7 @@ class EuropeData(db.Model):
 
     @classmethod
     def remove_all(cls):
-        db.session.execute("delete from " + cls.__tablename__)
+        db.session.execute("delete from " + cls.__tablename__ + " cascade")
         db.session.commit()
         return None
 
diff --git a/org/woehlke/covid19/europe/europe_service_update.py b/org/woehlke/covid19/europe/europe_service_update.py
index a818f8bf..e89b26b1 100644
--- a/org/woehlke/covid19/europe/europe_service_update.py
+++ b/org/woehlke/covid19/europe/europe_service_update.py
@@ -2,7 +2,7 @@ import os
 import psycopg2
 from database import db, app
 from org.woehlke.covid19.europe.europe_model import EuropeDataImportTable, \
-    EuropeDateReported, EuropeContinent, EuropeCountry
+    EuropeDateReported, EuropeContinent, EuropeCountry, EuropeData
 
 
 class EuropeServiceUpdate:
@@ -22,7 +22,6 @@ class EuropeServiceUpdate:
     def __update_date_reported(self):
         app.logger.info(" __update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
-        EuropeDateReported.remove_all()
         result_date_rep = EuropeDataImportTable.get_date_rep()
         for result_item in result_date_rep:
             my_date_rep = result_item['date_rep']
@@ -41,7 +40,6 @@ class EuropeServiceUpdate:
     def __update_continent(self):
         app.logger.info(" __update_continent [begin]")
         app.logger.info("------------------------------------------------------------")
-        EuropeContinent.remove_all()
         result_continent = EuropeDataImportTable.get_continent()
         for result_item in result_continent:
             my_continent_exp = result_item['continent_exp']
@@ -58,7 +56,6 @@ class EuropeServiceUpdate:
     def __update_country(self):
         app.logger.info(" __update_country [begin]")
         app.logger.info("------------------------------------------------------------")
-        EuropeCountry.remove_all()
         all_continents = EuropeContinent.get_all()
         for my_continent in all_continents:
             result_countries_of_continent = EuropeDataImportTable.get_countries_of_continent(my_continent)
@@ -83,9 +80,29 @@ class EuropeServiceUpdate:
         app.logger.info("------------------------------------------------------------")
         return self
 
+    def __delete_data(self):
+        EuropeData.remove_all()
+        return self
+
+    def __delete_continent(self):
+        EuropeContinent.remove_all()
+        return self
+
+    def __delete_country(self):
+        EuropeCountry.remove_all()
+        return self
+
+    def __delete_date_reported(self):
+        EuropeDateReported.remove_all()
+        return self
+
     def update_db(self):
         app.logger.info(" update_db [begin]")
         app.logger.info("------------------------------------------------------------")
+        self.__delete_data()
+        self.__delete_continent()
+        self.__delete_country()
+        self.__delete_date_reported()
         self.__update_date_reported()
         self.__update_continent()
         self.__update_country()
-- 
GitLab