diff --git a/src/Model/BoundaryConditionsAdisTS/BoundaryConditionAdisTS.py b/src/Model/BoundaryConditionsAdisTS/BoundaryConditionAdisTS.py index f4648d93..d5b7bcd4 100644 --- a/src/Model/BoundaryConditionsAdisTS/BoundaryConditionAdisTS.py +++ b/src/Model/BoundaryConditionsAdisTS/BoundaryConditionAdisTS.py @@ -248,15 +248,13 @@ class BoundaryConditionAdisTS(SQLSubModel): major, minor, release = version.strip().split(".") created = False - if major == "0" and minor == "0": - if int(release) < 11: + if major == "0" and int(minor) < 2: + if cls.is_table_exists(execute, "boundary_condition_adists"): + cls._db_update_to_0_2_0(execute, data) + else: cls._db_create(execute) created = True - if major == "0" and int(minor) < 2: - if not created: - cls._db_update_to_0_2_0(execute, data) - if not created: return cls._update_submodel(execute, version, data) diff --git a/src/Model/D90AdisTS/D90AdisTS.py b/src/Model/D90AdisTS/D90AdisTS.py index f0efa4a3..bfc4c103 100644 --- a/src/Model/D90AdisTS/D90AdisTS.py +++ b/src/Model/D90AdisTS/D90AdisTS.py @@ -73,15 +73,13 @@ class D90AdisTS(SQLSubModel): major, minor, release = version.strip().split(".") created = False - if major == "0" and minor == "0": - if int(release) < 11: + if major == "0" and int(minor) < 2: + if cls.is_table_exists(execute, "d90_adists"): + cls._db_update_to_0_2_0(execute, data) + else: cls._db_create(execute) created = True - if major == "0" and int(minor) < 2: - if not created: - cls._db_update_to_0_2_0(execute, data) - if not created: return cls._update_submodel(execute, version, data) diff --git a/src/Model/D90AdisTS/D90AdisTSSpec.py b/src/Model/D90AdisTS/D90AdisTSSpec.py index 1c07ae23..997ebbb0 100644 --- a/src/Model/D90AdisTS/D90AdisTSSpec.py +++ b/src/Model/D90AdisTS/D90AdisTSSpec.py @@ -70,16 +70,12 @@ class D90AdisTSSpec(SQLSubModel): @classmethod def _db_update(cls, execute, version, data=None): major, minor, release = version.strip().split(".") - created = False - - if major == "0" and minor == "0": - if int(release) < 11: - cls._db_create(execute) - created = True if major == "0" and int(minor) < 2: - if not created: + if cls.is_table_exists(execute, "d90_spec"): cls._db_update_to_0_2_0(execute, data) + else: + cls._db_create(execute) return True diff --git a/src/Model/DIFAdisTS/DIFAdisTS.py b/src/Model/DIFAdisTS/DIFAdisTS.py index 0f0a0d40..0af3f1e8 100644 --- a/src/Model/DIFAdisTS/DIFAdisTS.py +++ b/src/Model/DIFAdisTS/DIFAdisTS.py @@ -79,15 +79,13 @@ class DIFAdisTS(SQLSubModel): major, minor, release = version.strip().split(".") created = False - if major == "0" and minor == "0": - if int(release) < 11: + if major == "0" and int(minor) < 2: + if cls.is_table_exists(execute, "dif_adists"): + cls._db_update_to_0_2_0(execute, data) + else: cls._db_create(execute) created = True - if major == "0" and int(minor) < 2: - if not created: - cls._db_update_to_0_2_0(execute, data) - if not created: return cls._update_submodel(execute, version, data) diff --git a/src/Model/DIFAdisTS/DIFAdisTSSpec.py b/src/Model/DIFAdisTS/DIFAdisTSSpec.py index 167a85f8..b3265034 100644 --- a/src/Model/DIFAdisTS/DIFAdisTSSpec.py +++ b/src/Model/DIFAdisTS/DIFAdisTSSpec.py @@ -81,16 +81,12 @@ class DIFAdisTSSpec(SQLSubModel): @classmethod def _db_update(cls, execute, version, data=None): major, minor, release = version.strip().split(".") - created = False - - if major == "0" and minor == "0": - if int(release) < 11: - cls._db_create(execute) - created = True if major == "0" and int(minor) < 2: - if not created: + if cls.is_table_exists(execute, "dif_spec"): cls._db_update_to_0_2_0(execute, data) + else: + cls._db_create(execute) return True diff --git a/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py b/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py index 72c1b7b9..845d9bc3 100644 --- a/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py +++ b/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTS.py @@ -79,16 +79,12 @@ class InitialConditionsAdisTS(SQLSubModel): @classmethod def _db_update(cls, execute, version, data=None): major, minor, release = version.strip().split(".") - created = False - - if major == "0" and minor == "0": - if int(release) < 11: - cls._db_create(execute) - created = True if major == "0" and int(minor) < 2: - if not created: + if cls.is_table_exists(execute, "initial_conditions_adists"): cls._db_update_to_0_2_0(execute, data) + else: + cls._db_create(execute) return True diff --git a/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTSSpec.py b/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTSSpec.py index b00e16e0..85628c40 100644 --- a/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTSSpec.py +++ b/src/Model/InitialConditionsAdisTS/InitialConditionsAdisTSSpec.py @@ -77,16 +77,12 @@ class ICAdisTSSpec(SQLSubModel): @classmethod def _db_update(cls, execute, version, data=None): major, minor, release = version.strip().split(".") - created = False - - if major == "0" and minor == "0": - if int(release) < 11: - cls._db_create(execute) - created = True if major == "0" and int(minor) < 2: - if not created: + if cls.is_table_exists(execute, "initial_conditions_adists_spec"): cls._db_update_to_0_2_0(execute, data) + else: + cls._db_create(execute) return True diff --git a/src/Model/LateralContributionsAdisTS/LateralContributionAdisTS.py b/src/Model/LateralContributionsAdisTS/LateralContributionAdisTS.py index 2b6be0d5..4e0ee3d2 100644 --- a/src/Model/LateralContributionsAdisTS/LateralContributionAdisTS.py +++ b/src/Model/LateralContributionsAdisTS/LateralContributionAdisTS.py @@ -69,14 +69,11 @@ class Data(SQLSubModel): major, minor, release = version.strip().split(".") created = False - if major == "0" and minor == "0": - if int(release) < 11: - cls._db_create(execute) - created = True - if major == "0" and int(minor) < 2: - if not created: + if cls.is_table_exists(execute, "lateral_contribution_data_adists"): cls._db_update_to_0_2_0(execute, data) + else: + cls._db_create(execute) return True @@ -243,15 +240,13 @@ class LateralContributionAdisTS(SQLSubModel): major, minor, release = version.strip().split(".") created = False - if major == "0" and minor == "0": - if int(release) < 11: + if major == "0" and int(minor) < 2: + if cls.is_table_exists(execute, "lateral_contribution_adists"): + cls._db_update_to_0_2_0(execute, data) + else: cls._db_create(execute) created = True - if major == "0" and int(minor) < 2: - if not created: - cls._db_update_to_0_2_0(execute, data) - if not created: return cls._update_submodel(execute, version, data) diff --git a/src/Model/OutputRKAdists/OutputRKAdists.py b/src/Model/OutputRKAdists/OutputRKAdists.py index 18a79360..b64af320 100644 --- a/src/Model/OutputRKAdists/OutputRKAdists.py +++ b/src/Model/OutputRKAdists/OutputRKAdists.py @@ -95,16 +95,12 @@ class OutputRKAdists(SQLSubModel): @classmethod def _db_update(cls, execute, version, data=None): major, minor, release = version.strip().split(".") - created = False - - if major == "0" and minor == "0": - if int(release) < 11: - cls._db_create(execute) - created = True if major == "0" and int(minor) < 2: - if not created: + if cls.is_table_exists(execute, "OutputRKAdists"): cls._db_update_to_0_2_0(execute, data) + else: + cls._db_create(execute) return True diff --git a/src/Model/Pollutants/Pollutants.py b/src/Model/Pollutants/Pollutants.py index 03136e74..e2dbc187 100644 --- a/src/Model/Pollutants/Pollutants.py +++ b/src/Model/Pollutants/Pollutants.py @@ -138,16 +138,12 @@ class PollutantCharacteristics(SQLSubModel): @classmethod def _db_update(cls, execute, version, data=None): major, minor, release = version.strip().split(".") - created = False - - if major == "0" and minor == "0": - if int(release) < 11: - cls._db_create(execute) - created = True if major == "0" and int(minor) < 2: - if not created: + if cls.is_table_exists(execute, "Pollutants_characteristic"): cls._db_update_to_0_2_0(execute, data) + else: + cls._db_create(execute) return cls._update_submodel(execute, version, data) @@ -370,15 +366,13 @@ class Pollutants(SQLSubModel): major, minor, release = version.strip().split(".") created = False - if major == "0" and minor == "0": - if int(release) < 11: + if major == "0" and int(minor) < 2: + if cls.is_table_exists(execute, "Pollutants"): + cls._db_update_to_0_2_0(execute, data) + else: cls._db_create(execute) created = True - if major == "0" and int(minor) < 2: - if not created: - cls._db_update_to_0_2_0(execute, data) - if not created: return cls._update_submodel(execute, version, data) diff --git a/src/Model/Tools/PamhyrDB.py b/src/Model/Tools/PamhyrDB.py index fba538c4..1db1e36d 100644 --- a/src/Model/Tools/PamhyrDB.py +++ b/src/Model/Tools/PamhyrDB.py @@ -301,6 +301,15 @@ class SQLSubModel(PamhyrID): """ raise NotImplementedMethodeError(cls, cls._db_update) + @classmethod + def is_table_exists(cls, execute, table): + return any( + execute( + "SELECT name FROM sqlite_master " + + f"WHERE type='table' AND name='{table}'" + ) + ) + @classmethod def _db_update_to_0_2_0_set_node_pid(cls, execute, table, nodes): els = execute(