diff --git a/src/Model/Geometry/PointXYZ.py b/src/Model/Geometry/PointXYZ.py index e492fa99..14243d7f 100644 --- a/src/Model/Geometry/PointXYZ.py +++ b/src/Model/Geometry/PointXYZ.py @@ -91,8 +91,8 @@ class PointXYZ(Point, SQLSubModel): execute( f"INSERT INTO {table}_tmp " + - "(pamhyr_id, name, x, y, z, profile, sl, scenario) " + - "SELECT pamhyr_id, name, x, y, z, profile, sl, scenario " + + "(pamhyr_id, ind, name, x, y, z, profile, sl, scenario) " + + "SELECT pamhyr_id, ind, name, x, y, z, profile, sl, scenario " + f"FROM {table}" ) @@ -133,6 +133,9 @@ class PointXYZ(Point, SQLSubModel): pid = next(it) sl_id = next(it) + if sl_id == -1: + continue + execute( f"UPDATE {table} " + f"SET sl = {sl[sl_id]} " + diff --git a/src/Model/Geometry/ProfileXYZ.py b/src/Model/Geometry/ProfileXYZ.py index cbf410ec..ef4d80c9 100644 --- a/src/Model/Geometry/ProfileXYZ.py +++ b/src/Model/Geometry/ProfileXYZ.py @@ -92,6 +92,9 @@ class ProfileXYZ(Profile, SQLSubModel): ) """) + if ext == "_tmp": + return True + return cls._create_submodel(execute) @classmethod @@ -160,6 +163,9 @@ class ProfileXYZ(Profile, SQLSubModel): pid = next(it) sl_id = next(it) + if sl_id == -1: + continue + execute( f"UPDATE {table} " + f"SET sl = {sl[sl_id]} " + diff --git a/src/Model/HydraulicStructures/Basic/HydraulicStructures.py b/src/Model/HydraulicStructures/Basic/HydraulicStructures.py index 492726bd..8b7d0982 100644 --- a/src/Model/HydraulicStructures/Basic/HydraulicStructures.py +++ b/src/Model/HydraulicStructures/Basic/HydraulicStructures.py @@ -64,6 +64,9 @@ class BasicHS(SQLSubModel): ) """) + if ext == "_tmp": + return True + return cls._create_submodel(execute) @classmethod diff --git a/src/Model/HydraulicStructures/HydraulicStructures.py b/src/Model/HydraulicStructures/HydraulicStructures.py index a40bab3a..6b3f6294 100644 --- a/src/Model/HydraulicStructures/HydraulicStructures.py +++ b/src/Model/HydraulicStructures/HydraulicStructures.py @@ -72,6 +72,9 @@ class HydraulicStructure(SQLSubModel): ) """) + if ext == "_tmp": + return True + return cls._create_submodel(execute) @classmethod @@ -83,7 +86,7 @@ class HydraulicStructure(SQLSubModel): if rl < 6: cls._db_create(execute) - if rl < 11: + if 6 < rl < 11: for v in ["input", "output"]: execute( f""" diff --git a/src/Model/River.py b/src/Model/River.py index 1f200e82..bd66b031 100644 --- a/src/Model/River.py +++ b/src/Model/River.py @@ -309,13 +309,13 @@ class RiverReach(Edge, SQLSubModel): class River(Graph, SQLSubModel): _sub_classes = [ StricklersList, + SedimentLayerList, RiverNode, RiverReach, BoundaryConditionList, LateralContributionList, InitialConditionsDict, SolverParametersList, - SedimentLayerList, ReservoirList, HydraulicStructureList, AddFileList, diff --git a/src/Model/Scenario.py b/src/Model/Scenario.py index d7cba13c..ed89a6e7 100644 --- a/src/Model/Scenario.py +++ b/src/Model/Scenario.py @@ -103,11 +103,11 @@ class Scenario(SQLSubModel): "ADD COLUMN scenario INTEGER NOT NULL DEFAULT 0" ) - execute( - f"ALTER TABLE {table} " + - "ADD CONSTRAINT fk_scenario FOREIGN KEY (scenario) " + - "REFERENCES scenario(id)" - ) + # execute( + # f"ALTER TABLE {table} " + + # "ADD CONSTRAINT fk_scenario FOREIGN KEY (scenario) " + + # "REFERENCES scenario(id)" + # ) @classmethod def _db_load(cls, execute, data=None): diff --git a/src/Model/SedimentLayer/SedimentLayer.py b/src/Model/SedimentLayer/SedimentLayer.py index ddaba90a..9e621830 100644 --- a/src/Model/SedimentLayer/SedimentLayer.py +++ b/src/Model/SedimentLayer/SedimentLayer.py @@ -125,8 +125,8 @@ class Layer(SQLSubModel): if major == minor == "0": if int(release) < 2: cls._db_create(execute) - - cls._db_update_to_0_1_0(execute, data) + else: + cls._db_update_to_0_1_0(execute, data) return cls._update_submodel(execute, version, data) @@ -142,9 +142,9 @@ class Layer(SQLSubModel): execute( f"INSERT INTO {table}_tmp " + - "(pamhyr_id, name, type, height, " + + "(pamhyr_id, ind, name, type, height, " + "d50, sigma, critical_constraint, sl, scenario) " + - "SELECT pamhyr_id, name, type, height, " + + "SELECT pamhyr_id, ind, name, type, height, " + "d50, sigma, critical_constraint, sl, scenario " + f"FROM {table}" ) @@ -296,6 +296,9 @@ class SedimentLayer(SQLSubModel): ) """) + if ext == "_tmp": + return True + return cls._create_submodel(execute) @classmethod @@ -304,8 +307,8 @@ class SedimentLayer(SQLSubModel): if major == minor == "0": if int(release) < 2: cls._db_create(execute) - - cls._db_update_to_0_1_0(execute, data) + else: + cls._db_update_to_0_1_0(execute, data) return cls._update_submodel(execute, version, data)