Fisheye: Tag 68c67ec6bb74c35eeecbf0b95983a5c780f6d008 refers to a dead (removed) revision in file `Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/DatabaseStructure23.2.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/DatabaseStructure24.1.sql =================================================================== diff -u --- Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/DatabaseStructure24.1.sql (revision 0) +++ Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/DatabaseStructure24.1.sql (revision 68c67ec6bb74c35eeecbf0b95983a5c780f6d008) @@ -0,0 +1,2637 @@ +/* ---------------------------------------------------- */ +/* Generated by Enterprise Architect Version 16.1 */ +/* Created On : 24-jun-2024 07:58:24 */ +/* DBMS : SQLite */ +/* ---------------------------------------------------- */ + +/* Drop Tables */ + +DROP TABLE IF EXISTS VersionEntity +; + +DROP TABLE IF EXISTS ProjectEntity +; + +DROP TABLE IF EXISTS AssessmentSectionEntity +; + +DROP TABLE IF EXISTS FailureMechanismEntity +; + +DROP TABLE IF EXISTS FailureMechanismSectionEntity +; + +DROP TABLE IF EXISTS ClosingStructuresFailureMechanismMetaEntity +; + +DROP TABLE IF EXISTS CalculationGroupEntity +; + +DROP TABLE IF EXISTS HydraulicLocationEntity +; + +DROP TABLE IF EXISTS SemiProbabilisticPipingCalculationEntity +; + +DROP TABLE IF EXISTS GrassCoverErosionInwardsFailureMechanismMetaEntity +; + +DROP TABLE IF EXISTS GrassCoverErosionInwardsCalculationEntity +; + +DROP TABLE IF EXISTS GrassCoverErosionOutwardsFailureMechanismMetaEntity +; + +DROP TABLE IF EXISTS PipingSoilProfileEntity +; + +DROP TABLE IF EXISTS PipingSoilLayerEntity +; + +DROP TABLE IF EXISTS PipingStochasticSoilProfileEntity +; + +DROP TABLE IF EXISTS StochasticSoilModelEntity +; + +DROP TABLE IF EXISTS PipingFailureMechanismSectionConfigurationEntity +; + +DROP TABLE IF EXISTS SurfaceLineEntity +; + +DROP TABLE IF EXISTS PipingCharacteristicPointEntity +; + +DROP TABLE IF EXISTS WaveImpactAsphaltCoverFailureMechanismMetaEntity +; + +DROP TABLE IF EXISTS AdoptableFailureMechanismSectionResultEntity +; + +DROP TABLE IF EXISTS BackgroundDataEntity +; + +DROP TABLE IF EXISTS BackgroundDataMetaEntity +; + +DROP TABLE IF EXISTS ClosingStructureEntity +; + +DROP TABLE IF EXISTS ClosingStructuresCalculationEntity +; + +DROP TABLE IF EXISTS ClosingStructuresOutputEntity +; + +DROP TABLE IF EXISTS DikeProfileEntity +; + +DROP TABLE IF EXISTS DuneErosionFailureMechanismMetaEntity +; + +DROP TABLE IF EXISTS DuneLocationCalculationEntity +; + +DROP TABLE IF EXISTS DuneLocationCalculationForTargetProbabilityCollectionEntity +; + +DROP TABLE IF EXISTS DuneLocationCalculationOutputEntity +; + +DROP TABLE IF EXISTS DuneLocationEntity +; + +DROP TABLE IF EXISTS FailureMechanismFailureMechanismSectionEntity +; + +DROP TABLE IF EXISTS FaultTreeIllustrationPointEntity +; + +DROP TABLE IF EXISTS FaultTreeIllustrationPointStochastEntity +; + +DROP TABLE IF EXISTS FaultTreeSubmechanismIllustrationPointEntity +; + +DROP TABLE IF EXISTS ForeshoreProfileEntity +; + +DROP TABLE IF EXISTS GeneralResultFaultTreeIllustrationPointEntity +; + +DROP TABLE IF EXISTS GeneralResultFaultTreeIllustrationPointStochastEntity +; + +DROP TABLE IF EXISTS GeneralResultSubMechanismIllustrationPointEntity +; + +DROP TABLE IF EXISTS GeneralResultSubMechanismIllustrationPointStochastEntity +; + +DROP TABLE IF EXISTS GrassCoverErosionInwardsDikeHeightOutputEntity +; + +DROP TABLE IF EXISTS GrassCoverErosionInwardsOutputEntity +; + +DROP TABLE IF EXISTS GrassCoverErosionInwardsOvertoppingRateOutputEntity +; + +DROP TABLE IF EXISTS GrassCoverErosionOutwardsWaveConditionsCalculationEntity +; + +DROP TABLE IF EXISTS GrassCoverErosionOutwardsWaveConditionsOutputEntity +; + +DROP TABLE IF EXISTS HeightStructureEntity +; + +DROP TABLE IF EXISTS HeightStructuresCalculationEntity +; + +DROP TABLE IF EXISTS HeightStructuresFailureMechanismMetaEntity +; + +DROP TABLE IF EXISTS HeightStructuresOutputEntity +; + +DROP TABLE IF EXISTS HydraulicBoundaryDatabaseEntity +; + +DROP TABLE IF EXISTS HydraulicBoundaryDataEntity +; + +DROP TABLE IF EXISTS HydraulicLocationCalculationCollectionEntity +; + +DROP TABLE IF EXISTS HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity +; + +DROP TABLE IF EXISTS HydraulicLocationCalculationEntity +; + +DROP TABLE IF EXISTS HydraulicLocationCalculationForTargetProbabilityCollectionEntity +; + +DROP TABLE IF EXISTS HydraulicLocationCalculationForTargetProbabilityCollectionHydraulicLocationCalculationEntity +; + +DROP TABLE IF EXISTS HydraulicLocationOutputEntity +; + +DROP TABLE IF EXISTS IllustrationPointResultEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsCalculationEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsCalculationOutputEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsCharacteristicPointEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsFailureMechanismMetaEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsFailureMechanismSectionConfigurationEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsPreconsolidationStressEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsSoilLayerOneDEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsSoilLayerTwoDEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsSoilProfileOneDEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsSoilProfileTwoDEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsSoilProfileTwoDSoilLayerTwoDEntity +; + +DROP TABLE IF EXISTS MacroStabilityInwardsStochasticSoilProfileEntity +; + +DROP TABLE IF EXISTS NonAdoptableFailureMechanismSectionResultEntity +; + +DROP TABLE IF EXISTS PipingFailureMechanismMetaEntity +; + +DROP TABLE IF EXISTS ProbabilisticPipingCalculationEntity +; + +DROP TABLE IF EXISTS ProbabilisticPipingCalculationOutputEntity +; + +DROP TABLE IF EXISTS SemiProbabilisticPipingCalculationOutputEntity +; + +DROP TABLE IF EXISTS SpecificFailureMechanismEntity +; + +DROP TABLE IF EXISTS SpecificFailureMechanismFailureMechanismSectionEntity +; + +DROP TABLE IF EXISTS StabilityPointStructureEntity +; + +DROP TABLE IF EXISTS StabilityPointStructuresCalculationEntity +; + +DROP TABLE IF EXISTS StabilityPointStructuresFailureMechanismMetaEntity +; + +DROP TABLE IF EXISTS StabilityPointStructuresOutputEntity +; + +DROP TABLE IF EXISTS StabilityStoneCoverFailureMechanismMetaEntity +; + +DROP TABLE IF EXISTS StabilityStoneCoverWaveConditionsCalculationEntity +; + +DROP TABLE IF EXISTS StabilityStoneCoverWaveConditionsOutputEntity +; + +DROP TABLE IF EXISTS StochastEntity +; + +DROP TABLE IF EXISTS SubMechanismIllustrationPointEntity +; + +DROP TABLE IF EXISTS SubMechanismIllustrationPointStochastEntity +; + +DROP TABLE IF EXISTS TopLevelFaultTreeIllustrationPointEntity +; + +DROP TABLE IF EXISTS TopLevelSubMechanismIllustrationPointEntity +; + +DROP TABLE IF EXISTS WaveImpactAsphaltCoverWaveConditionsCalculationEntity +; + +DROP TABLE IF EXISTS WaveImpactAsphaltCoverWaveConditionsOutputEntity +; + +/* Create Tables with Primary and Foreign Keys, Check and Unique Constraints */ + +CREATE TABLE VersionEntity +( + VersionId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + Version VARCHAR (20) NOT NULL, + Timestamp DATETIME NOT NULL, + FingerPrint BLOB NOT NULL +) +; + +CREATE TABLE ProjectEntity +( + ProjectEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + Description VARCHAR (260) NULL +) +; + +CREATE TABLE AssessmentSectionEntity +( + AssessmentSectionEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + ProjectEntityId INTEGER NOT NULL, + HydraulicLocationCalculationCollectionEntity1Id INTEGER NOT NULL, -- Represents the water level signal flooding probability + HydraulicLocationCalculationCollectionEntity2Id INTEGER NOT NULL, -- Represents the water level maximum allowable flooding probability + Id TEXT NULL COLLATE NOCASE, + Name VARCHAR (260) NULL, + Comments TEXT NULL COLLATE NOCASE, + MaximumAllowableFloodingProbability REAL NOT NULL, + SignalFloodingProbability REAL NOT NULL, + NormativeProbabilityType TINYINT (1) NOT NULL, -- EnumType: 1 = MaximumAllowableFloodingProbability, 2 = SignalFloodingProbability + Composition TINYINT (1) NOT NULL, -- Enum: 1 = Dike, 2 = Dune, 3 = DikeAndDune + ReferenceLinePointXml TEXT NULL COLLATE NOCASE, + AreFailureMechanismsCorrelated TINYINT (1) NOT NULL, -- true or false + CONSTRAINT FK_AssessmentSectionEntity_HydraulicLocationCalculationCollectionEntity1 FOREIGN KEY (HydraulicLocationCalculationCollectionEntity1Id) REFERENCES HydraulicLocationCalculationCollectionEntity (HydraulicLocationCalculationCollectionEntityId) ON DELETE No Action ON UPDATE Cascade, + CONSTRAINT FK_AssessmentSectionEntity_HydraulicLocationCalculationCollectionEntity2 FOREIGN KEY (HydraulicLocationCalculationCollectionEntity2Id) REFERENCES HydraulicLocationCalculationCollectionEntity (HydraulicLocationCalculationCollectionEntityId) ON DELETE No Action ON UPDATE Cascade, + CONSTRAINT FK_AssessmentSectionEntity_ProjectEntity FOREIGN KEY (ProjectEntityId) REFERENCES ProjectEntity (ProjectEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_HydraulicLocationCalculationCollectionEntity1Id UNIQUE (HydraulicLocationCalculationCollectionEntity1Id), + CONSTRAINT U_HydraulicLocationCalculationCollectionEntity2Id UNIQUE (HydraulicLocationCalculationCollectionEntity2Id) +) +; + +CREATE TABLE FailureMechanismEntity +( + FailureMechanismEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + AssessmentSectionEntityId INTEGER NOT NULL, + CalculationGroupEntityId INTEGER NULL, + FailureMechanismType SMALLINT NOT NULL, -- Enum: 1 = Piping, 2 = Macrostabiliteit binnenwaarts, 3= Golfklappen op asfaltbekleding, 4= Grasbekleding erosie buitentalud, 5 = Grasbekleding afschuiven buitentalud, 6 = Grasbekleding erosie kruin en binnentalud, 7 = Stabiliteit steenzetting, 8 = Duinafslag, 9 = Hoogte kunstwerk, 10 = Betrouwbaarheid sluiten kunstwerk, 11 = Piping bij kunstwerk, 12 = Sterkte en stabiliteit puntconstructires, 13 = Microstabiliteit, 14 = Wateroverdruk bij asfaltbekleding, 15 = Grasbekleding afschuiven binnentalud + InAssembly TINYINT (1) NOT NULL, -- true or false + FailureMechanismSectionCollectionSourcePath TEXT NULL COLLATE NOCASE, + InAssemblyInputComments TEXT NULL COLLATE NOCASE, + InAssemblyOutputComments TEXT NULL COLLATE NOCASE, + NotInAssemblyComments TEXT NULL COLLATE NOCASE, + CalculationsInputComments TEXT NULL COLLATE NOCASE, + FailureMechanismAssemblyResultProbabilityResultType TINYINT (1) NOT NULL, -- Enum: None = 1, P1 = 2, P2 = 3, Manual = 4 + FailureMechanismAssemblyResultManualFailureMechanismAssemblyProbability REAL NULL, + CONSTRAINT FK_FailureMechanismEntity_AssessmentSectionEntity FOREIGN KEY (AssessmentSectionEntityId) REFERENCES AssessmentSectionEntity (AssessmentSectionEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_FailureMechanismEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT UI_AssessmentSectionEntityId_FailureMechanismType UNIQUE (AssessmentSectionEntityId,FailureMechanismType) +) +; + +CREATE TABLE FailureMechanismSectionEntity +( + FailureMechanismSectionEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + Name VARCHAR (260) NOT NULL, + FailureMechanismSectionPointXml TEXT NOT NULL COLLATE NOCASE +) +; + +CREATE TABLE ClosingStructuresFailureMechanismMetaEntity +( + ClosingStructuresFailureMechanismMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + ClosingStructureCollectionSourcePath TEXT NULL COLLATE NOCASE, + ForeshoreProfileCollectionSourcePath TEXT NULL COLLATE NOCASE, + CONSTRAINT FK_ClosingStructuresFailureMechanismMetaEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE CalculationGroupEntity +( + CalculationGroupEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + ParentCalculationGroupEntityId INTEGER NULL, + Name VARCHAR (260) NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_CalculationGroupEntity_CalculationGroupEntity FOREIGN KEY (ParentCalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE HydraulicLocationEntity +( + HydraulicLocationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + HydraulicBoundaryDatabaseEntityId INTEGER NOT NULL, + LocationId INTEGER NOT NULL, + Name VARCHAR (260) NOT NULL, + LocationX REAL NULL, + LocationY REAL NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_HydraulicLocationEntity_HydraulicBoundaryDatabaseEntity FOREIGN KEY (HydraulicBoundaryDatabaseEntityId) REFERENCES HydraulicBoundaryDatabaseEntity (HydraulicBoundaryDatabaseEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE SemiProbabilisticPipingCalculationEntity +( + SemiProbabilisticPipingCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + CalculationGroupEntityId INTEGER NOT NULL, + SurfaceLineEntityId INTEGER NULL, + PipingStochasticSoilProfileEntityId INTEGER NULL, + HydraulicLocationEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NULL, + Comments TEXT NULL COLLATE NOCASE, + EntryPointL REAL NULL, + ExitPointL REAL NULL, + PhreaticLevelExitMean REAL NULL, + PhreaticLevelExitStandardDeviation REAL NULL, + DampingFactorExitMean REAL NULL, + DampingFactorExitStandardDeviation REAL NULL, + RelevantForScenario TINYINT (1) NOT NULL, -- true or false + ScenarioContribution REAL NOT NULL, + AssessmentLevel REAL NULL, + UseAssessmentLevelManualInput TINYINT (1) NOT NULL, -- true or false + CONSTRAINT FK_SemiProbabilisticPipingCalculationEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_SemiProbabilisticPipingCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_SemiProbabilisticPipingCalculationEntity_PipingStochasticSoilProfileEntity FOREIGN KEY (PipingStochasticSoilProfileEntityId) REFERENCES PipingStochasticSoilProfileEntity (PipingStochasticSoilProfileEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_SemiProbabilisticPipingCalculationEntity_SurfaceLineEntity FOREIGN KEY (SurfaceLineEntityId) REFERENCES SurfaceLineEntity (SurfaceLineEntityId) ON DELETE Set Null ON UPDATE Cascade + ) +; + +CREATE TABLE GrassCoverErosionInwardsFailureMechanismMetaEntity +( + GrassCoverErosionInwardsFailureMechanismMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + DikeProfileCollectionSourcePath TEXT NULL COLLATE NOCASE, + CONSTRAINT FK_GrassCoverErosionInwardsFailureMechanismMetaEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE GrassCoverErosionInwardsCalculationEntity +( + GrassCoverErosionInwardsCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + CalculationGroupEntityId INTEGER NOT NULL, + HydraulicLocationEntityId INTEGER NULL, + DikeProfileEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NULL, + Comments TEXT NULL COLLATE NOCASE, + Orientation REAL NULL, + CriticalFlowRateMean REAL NULL, + CriticalFlowRateStandardDeviation REAL NULL, + UseForeshore TINYINT (1) NOT NULL, -- true or false + DikeHeight REAL NULL, + UseBreakWater TINYINT (1) NOT NULL, -- true or false + BreakWaterType TINYINT (1) NOT NULL, -- Enum: 1 = Wall, 2 = Caisson, 3 = Dam + BreakWaterHeight REAL NULL, + ShouldOvertoppingOutputIllustrationPointsBeCalculated TINYINT (1) NOT NULL, -- true or false + ShouldDikeHeightBeCalculated TINYINT (1) NOT NULL, -- true or false + DikeHeightTargetProbability REAL NOT NULL, + ShouldDikeHeightIllustrationPointsBeCalculated TINYINT (1) NOT NULL, -- true or false + ShouldOvertoppingRateBeCalculated TINYINT (1) NOT NULL, -- true or false + OvertoppingRateTargetProbability REAL NOT NULL, + ShouldOvertoppingRateIllustrationPointsBeCalculated TINYINT (1) NOT NULL, -- true or false + RelevantForScenario TINYINT (1) NOT NULL, -- true or false + ScenarioContribution REAL NOT NULL, + CONSTRAINT FK_GrassCoverErosionInwardsCalculationEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_GrassCoverErosionInwardsCalculationEntity_DikeProfileEntity FOREIGN KEY (DikeProfileEntityId) REFERENCES DikeProfileEntity (DikeProfileEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_GrassCoverErosionInwardsCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Set Null ON UPDATE Cascade + ) +; + +CREATE TABLE GrassCoverErosionOutwardsFailureMechanismMetaEntity +( + GrassCoverErosionOutwardsFailureMechanismMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + ForeshoreProfileCollectionSourcePath TEXT NULL COLLATE NOCASE, + CONSTRAINT FK_GrassCoverErosionOutwardsFailureMechanismMetaEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE PipingSoilProfileEntity +( + PipingSoilProfileEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + Bottom REAL NULL, + Name TEXT NOT NULL COLLATE NOCASE, + SourceType TINYINT (1) NOT NULL -- Enum: 1 = SoilProfile1D, 2 = SoilProfile2D +) +; + +CREATE TABLE PipingSoilLayerEntity +( + PipingSoilLayerEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + PipingSoilProfileEntityId INTEGER NOT NULL, + Top REAL NULL, + IsAquifer TINYINT (1) NOT NULL, -- true or false + Color INTEGER NULL, -- ARGB value of Color. + MaterialName TEXT NOT NULL COLLATE NOCASE, + BelowPhreaticLevelMean REAL NULL, + BelowPhreaticLevelDeviation REAL NULL, + BelowPhreaticLevelShift REAL NULL, + DiameterD70Mean REAL NULL, + DiameterD70CoefficientOfVariation REAL NULL, + PermeabilityMean REAL NULL, + PermeabilityCoefficientOfVariation REAL NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_PipingSoilLayerEntity_SoilProfileEntity FOREIGN KEY (PipingSoilProfileEntityId) REFERENCES PipingSoilProfileEntity (PipingSoilProfileEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE PipingStochasticSoilProfileEntity +( + PipingStochasticSoilProfileEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + PipingSoilProfileEntityId INTEGER NOT NULL, + StochasticSoilModelEntityId INTEGER NOT NULL, + Probability REAL NOT NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_PipingStochasticSoilProfileEntity_SoilProfileEntity FOREIGN KEY (PipingSoilProfileEntityId) REFERENCES PipingSoilProfileEntity (PipingSoilProfileEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_PipingStochasticSoilProfileEntity_StochasticSoilModelEntity FOREIGN KEY (StochasticSoilModelEntityId) REFERENCES StochasticSoilModelEntity (StochasticSoilModelEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE StochasticSoilModelEntity +( + StochasticSoilModelEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + Name TEXT NOT NULL COLLATE NOCASE, + StochasticSoilModelSegmentPointXml TEXT NOT NULL COLLATE NOCASE, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_StochasticSoilModelEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT UQ_StochasticSoilModelEntity_NameFailureMechanismEntityId UNIQUE (Name,FailureMechanismEntityId) + ) +; + +CREATE TABLE PipingFailureMechanismSectionConfigurationEntity +( + PipingFailureMechanismSectionConfigurationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismSectionEntityId INTEGER NOT NULL, + ScenarioConfigurationType TINYINT (1) NOT NULL, -- Enum: SemiProbabilistic = 1 Probabilistic = 2 + A REAL NOT NULL, + CONSTRAINT FK_PipingFailureMechanismSectionConfigurationEntity_FailureMechanismSectionEntity FOREIGN KEY (FailureMechanismSectionEntityId) REFERENCES FailureMechanismSectionEntity (FailureMechanismSectionEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE SurfaceLineEntity +( + SurfaceLineEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + Name VARCHAR (260) NOT NULL, + ReferenceLineIntersectionX REAL NULL, + ReferenceLineIntersectionY REAL NULL, + PointsXml TEXT NOT NULL COLLATE NOCASE, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_SurfaceLineEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT UQ_SurfaceLineEntity_NameFailureMechanismEntityId UNIQUE (Name,FailureMechanismEntityId) + ) +; + +CREATE TABLE PipingCharacteristicPointEntity +( + PipingCharacteristicPointEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + SurfaceLineEntityId INTEGER NOT NULL, + Type TINYINT (1) NOT NULL, -- Enum: 1 = DikeToeAtRiver, 2 = DikeToeAtPolder, 3 = DitchDikeSide, 4 = BottomDitchDikeSide, 5 = BottomDitchPolderSide, 6 = DitchPolderSide + X REAL NULL, + Y REAL NULL, + Z REAL NULL, + CONSTRAINT FK_SurfaceLinePointEntity_SurfaceLineEntity FOREIGN KEY (SurfaceLineEntityId) REFERENCES SurfaceLineEntity (SurfaceLineEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE WaveImpactAsphaltCoverFailureMechanismMetaEntity +( + WaveImpactAsphaltCoverFailureMechanismMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + ForeshoreProfileCollectionSourcePath TEXT NULL COLLATE NOCASE, + CONSTRAINT FK_WaveImpactAsphaltCoverFailureMechanismMetaEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE AdoptableFailureMechanismSectionResultEntity +( + AdoptableFailureMechanismSectionResultEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismSectionEntityId INTEGER NOT NULL, + IsRelevant TINYINT (1) NOT NULL, -- true or false + InitialFailureMechanismResultType TINYINT (1) NOT NULL, -- Enum: Adopt = 1 Manual = 2 NoFailureProbability = 3 + ManualInitialFailureMechanismResultSectionProbability REAL NULL, + FurtherAnalysisType TINYINT (1) NOT NULL, -- Enum: NotNecessary = 1 Necessary = 2 Executed = 3 + RefinedSectionProbability REAL NULL, + CONSTRAINT FK_AdoptableFailureMechanismSectionResultEntity_FailureMechanismSectionEntity FOREIGN KEY (FailureMechanismSectionEntityId) REFERENCES FailureMechanismSectionEntity (FailureMechanismSectionEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE BackgroundDataEntity +( + BackgroundDataEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + AssessmentSectionEntityId INTEGER NOT NULL, + Name TEXT NOT NULL COLLATE NOCASE, + IsVisible TINYINT (1) NOT NULL, -- true or false + Transparency REAL NOT NULL, + BackgroundDataType TINYINT (1) NOT NULL, -- Enum: 1 = Wmts, 2 = WellKnown + CONSTRAINT FK_BackgroundDataEntity_AssessmentSectionEntity FOREIGN KEY (AssessmentSectionEntityId) REFERENCES AssessmentSectionEntity (AssessmentSectionEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE BackgroundDataMetaEntity +( + BackgroundDataMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + BackgroundDataEntityId INTEGER NOT NULL, + 'Key' TEXT NOT NULL COLLATE NOCASE, + Value TEXT NOT NULL COLLATE NOCASE, + CONSTRAINT FK_BackgroundDataMetaEntity_BackgroundDataEntity FOREIGN KEY (BackgroundDataEntityId) REFERENCES BackgroundDataEntity (BackgroundDataEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_BackgroundDataEntityId_Key UNIQUE (BackgroundDataEntityId,'Key') +) +; + +CREATE TABLE ClosingStructureEntity +( + ClosingStructureEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NOT NULL, + Id VARCHAR (260) NOT NULL, + X REAL NULL, + Y REAL NULL, + StructureNormalOrientation REAL NULL, + StorageStructureAreaMean REAL NULL, + StorageStructureAreaCoefficientOfVariation REAL NULL, + AllowedLevelIncreaseStorageMean REAL NULL, + AllowedLevelIncreaseStorageStandardDeviation REAL NULL, + WidthFlowAperturesMean REAL NULL, + WidthFlowAperturesStandardDeviation REAL NULL, + LevelCrestStructureNotClosingMean REAL NULL, + LevelCrestStructureNotClosingStandardDeviation REAL NULL, + InsideWaterLevelMean REAL NULL, + InsideWaterLevelStandardDeviation REAL NULL, + ThresholdHeightOpenWeirMean REAL NULL, + ThresholdHeightOpenWeirStandardDeviation REAL NULL, + AreaFlowAperturesMean REAL NULL, + AreaFlowAperturesStandardDeviation REAL NULL, + CriticalOvertoppingDischargeMean REAL NULL, + CriticalOvertoppingDischargeCoefficientOfVariation REAL NULL, + FlowWidthAtBottomProtectionMean REAL NULL, + FlowWidthAtBottomProtectionStandardDeviation REAL NULL, + ProbabilityOpenStructureBeforeFlooding REAL NULL, + FailureProbabilityOpenStructure REAL NULL, + IdenticalApertures INT (4) NOT NULL, + FailureProbabilityReparation REAL NULL, + InflowModelType TINYINT (1) NOT NULL, -- Enum: 1 = VerticalWall, 2 = LowSill, 3 = FloodedCulvert + CONSTRAINT FK_ClosingStructureEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_Id_FailureMechanismEntityId UNIQUE (FailureMechanismEntityId,Id) + ) +; + +CREATE TABLE ClosingStructuresCalculationEntity +( + ClosingStructuresCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + CalculationGroupEntityId INTEGER NOT NULL, + ForeshoreProfileEntityId INTEGER NULL, + HydraulicLocationEntityId INTEGER NULL, + ClosingStructureEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (255) NULL, + Comments TEXT NULL COLLATE NOCASE, + UseBreakWater TINYINT (1) NOT NULL, -- true or false + BreakWaterType TINYINT (1) NOT NULL, -- Enum: 1 = Wall, 2 = Caisson, 3 = Dam + BreakWaterHeight REAL NULL, + UseForeshore TINYINT (1) NOT NULL, -- true or false + Orientation REAL NULL, + StructureNormalOrientation REAL NULL, + StorageStructureAreaMean REAL NULL, + StorageStructureAreaCoefficientOfVariation REAL NULL, + AllowedLevelIncreaseStorageMean REAL NULL, + AllowedLevelIncreaseStorageStandardDeviation REAL NULL, + WidthFlowAperturesMean REAL NULL, + WidthFlowAperturesStandardDeviation REAL NULL, + LevelCrestStructureNotClosingMean REAL NULL, + LevelCrestStructureNotClosingStandardDeviation REAL NULL, + InsideWaterLevelMean REAL NULL, + InsideWaterLevelStandardDeviation REAL NULL, + ThresholdHeightOpenWeirMean REAL NULL, + ThresholdHeightOpenWeirStandardDeviation REAL NULL, + AreaFlowAperturesMean REAL NULL, + AreaFlowAperturesStandardDeviation REAL NULL, + CriticalOvertoppingDischargeMean REAL NULL, + CriticalOvertoppingDischargeCoefficientOfVariation REAL NULL, + FlowWidthAtBottomProtectionMean REAL NULL, + FlowWidthAtBottomProtectionStandardDeviation REAL NULL, + ProbabilityOpenStructureBeforeFlooding REAL NOT NULL, + FailureProbabilityOpenStructure REAL NOT NULL, + IdenticalApertures INT (4) NOT NULL, + FailureProbabilityReparation REAL NOT NULL, + InflowModelType TINYINT (1) NOT NULL, -- Enum: 1 = VerticalWall, 2 = LowSill, 3 = FloodedCulvert + FailureProbabilityStructureWithErosion REAL NOT NULL, + DeviationWaveDirection REAL NULL, + DrainCoefficientMean REAL NULL, + DrainCoefficientStandardDeviation REAL NULL, + ModelFactorSuperCriticalFlowMean REAL NULL, + StormDurationMean REAL NULL, + FactorStormDurationOpenStructure REAL NULL, + ShouldIllustrationPointsBeCalculated TINYINT (1) NOT NULL, -- true or false + RelevantForScenario TINYINT (1) NOT NULL, -- true or false + ScenarioContribution REAL NOT NULL, + CONSTRAINT FK_ClosingStructuresCalculationEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_ClosingStructuresCalculationEntity_ClosingStructureEntity FOREIGN KEY (ClosingStructureEntityId) REFERENCES ClosingStructureEntity (ClosingStructureEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_ClosingStructuresCalculationEntity_ForeshoreProfileEntity FOREIGN KEY (ForeshoreProfileEntityId) REFERENCES ForeshoreProfileEntity (ForeshoreProfileEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_ClosingStructuresCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Set Null ON UPDATE Cascade + ) +; + +CREATE TABLE ClosingStructuresOutputEntity +( + ClosingStructuresOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + ClosingStructuresCalculationEntityId INTEGER NOT NULL, + GeneralResultFaultTreeIllustrationPointEntityId INTEGER NULL, + Reliability REAL NULL, + CONSTRAINT FK_ClosingStructuresOutputEntity_ClosingStructuresCalculationEntity FOREIGN KEY (ClosingStructuresCalculationEntityId) REFERENCES ClosingStructuresCalculationEntity (ClosingStructuresCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_ClosingStructuresOutputEntity_GeneralResultFaultTreeIllustrationPointEntity FOREIGN KEY (GeneralResultFaultTreeIllustrationPointEntityId) REFERENCES GeneralResultFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT U_ClosingStructuresCalculationEntity UNIQUE (ClosingStructuresCalculationEntityId) +) +; + +CREATE TABLE DikeProfileEntity +( + DikeProfileEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + Id VARCHAR (260) NOT NULL, + Name VARCHAR (260) NOT NULL, + Orientation REAL NULL, + BreakWaterType TINYINT (1) NULL, -- Enum: 1 = Wall 2 = Caisson 3 = Dam + BreakWaterHeight REAL NULL, + ForeshoreXml TEXT NOT NULL COLLATE NOCASE, + DikeGeometryXml TEXT NOT NULL COLLATE NOCASE, + DikeHeight REAL NULL, + X REAL NULL, + Y REAL NULL, + X0 REAL NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_DikeProfileEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT UQ_DikeProfileEntity_IdFailureMechanismEntityId UNIQUE (Id,FailureMechanismEntityId) + ) +; + +CREATE TABLE DuneErosionFailureMechanismMetaEntity +( + DuneErosionFailureMechanismMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + CONSTRAINT FK_DuneErosionFailureMechanismMetaEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE DuneLocationCalculationEntity +( + DuneLocationCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + DuneLocationEntityId INTEGER NOT NULL, + DuneLocationCalculationForTargetProbabilityCollectionEntityId INTEGER NOT NULL, + CONSTRAINT FK_DuneLocationCalculationEntity_DuneLocationCalculationCollectionEntity FOREIGN KEY (DuneLocationCalculationForTargetProbabilityCollectionEntityId) REFERENCES DuneLocationCalculationForTargetProbabilityCollectionEntity (DuneLocationCalculationCollectionEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_DuneLocationCalculationEntity_DuneLocationEntity FOREIGN KEY (DuneLocationEntityId) REFERENCES DuneLocationEntity (DuneLocationEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE DuneLocationCalculationForTargetProbabilityCollectionEntity +( + DuneLocationCalculationCollectionEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + DuneErosionFailureMechanismMetaEntityId INTEGER NOT NULL, + 'Order' INT (4) NOT NULL, + TargetProbability REAL NOT NULL, + CONSTRAINT FK_DuneLocationCalculationForTargetProbabilityCollectionEntity_DuneErosionFailureMechanismMetaEntity FOREIGN KEY (DuneErosionFailureMechanismMetaEntityId) REFERENCES DuneErosionFailureMechanismMetaEntity (DuneErosionFailureMechanismMetaEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE DuneLocationCalculationOutputEntity +( + DuneLocationCalculationOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + DuneLocationCalculationEntityId INTEGER NOT NULL, + WaterLevel REAL NULL, + WaveHeight REAL NULL, + WavePeriod REAL NULL, + MeanTidalAmplitude REAL NULL, + WaveDirectionalSpread REAL NULL, + TideSurgePhaseDifference REAL NULL, + TargetProbability REAL NULL, + TargetReliability REAL NULL, + CalculatedProbability REAL NULL, + CalculatedReliability REAL NULL, + CalculationConvergence TINYINT (1) NOT NULL, -- Enum: 1 = NotCalculated, 2 = CalculatedNotConverged, 3 = CalculatedConverged + CONSTRAINT FK_DuneLocationCalculationOutputEntity_DuneLocationCalculationEntity FOREIGN KEY (DuneLocationCalculationEntityId) REFERENCES DuneLocationCalculationEntity (DuneLocationCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE DuneLocationEntity +( + DuneLocationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + HydraulicLocationEntityId INTEGER NOT NULL, + FailureMechanismEntityId INTEGER NOT NULL, + Name VARCHAR (260) NOT NULL, + CoastalAreaId INT (4) NOT NULL, + 'Offset' REAL NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_DuneLocationEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_DuneLocationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE FailureMechanismFailureMechanismSectionEntity +( + FailureMechanismEntityId INTEGER NOT NULL, + FailureMechanismSectionEntityId INTEGER NOT NULL, + CONSTRAINT PK_FailureMechanismFailureMechanismSectionEntity PRIMARY KEY (FailureMechanismSectionEntityId,FailureMechanismEntityId), + CONSTRAINT FK_FailureMechanismFailureMechanismSectionEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_FailureMechanismFailureMechanismSectionEntity_FailureMechanismSectionEntity FOREIGN KEY (FailureMechanismSectionEntityId) REFERENCES FailureMechanismSectionEntity (FailureMechanismSectionEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE FaultTreeIllustrationPointEntity +( + FaultTreeIllustrationPointEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + ParentFaultTreeIllustrationPointEntityId INTEGER NULL, + Name TEXT NOT NULL COLLATE NOCASE, + Beta REAL NOT NULL, + CombinationType TINYINT (1) NOT NULL, -- Enum: 1 = Or, 2 = And + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_FaultTreeIllustrationPoint_FaultTreeIllustrationPoint FOREIGN KEY (ParentFaultTreeIllustrationPointEntityId) REFERENCES FaultTreeIllustrationPointEntity (FaultTreeIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE FaultTreeIllustrationPointStochastEntity +( + FaultTreeIllustrationPointEntityId INTEGER NOT NULL, + StochastEntityId INTEGER NOT NULL, + CONSTRAINT PK_FaultTreeIllustrationPointStochastEntity PRIMARY KEY (FaultTreeIllustrationPointEntityId,StochastEntityId), + CONSTRAINT FK_FaultTreeIllustrationPointStochastEntity_FaultTreeIllustrationPoint FOREIGN KEY (FaultTreeIllustrationPointEntityId) REFERENCES FaultTreeIllustrationPointEntity (FaultTreeIllustrationPointEntityId) ON DELETE No Action ON UPDATE No Action, + CONSTRAINT FK_FaultTreeIllustrationPointStochastEntity_StochastEntity FOREIGN KEY (StochastEntityId) REFERENCES StochastEntity (StochastEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE FaultTreeSubmechanismIllustrationPointEntity +( + SubMechanismIllustrationPointEntityId INTEGER NOT NULL, + FaultTreeIllustrationPointEntityId INTEGER NOT NULL, + CONSTRAINT PK_FaultTreeSubMechanismIllustrationPointEntityId PRIMARY KEY (SubMechanismIllustrationPointEntityId,FaultTreeIllustrationPointEntityId), + CONSTRAINT FK_FaultTreeIllustrationPointEntity_FaultTreeIllustrationPointEntity FOREIGN KEY (FaultTreeIllustrationPointEntityId) REFERENCES FaultTreeIllustrationPointEntity (FaultTreeIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_FaultTreeIllustrationPointEntity_SubMechanismIllustrationPointEntity FOREIGN KEY (SubMechanismIllustrationPointEntityId) REFERENCES SubMechanismIllustrationPointEntity (SubMechanismIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE ForeshoreProfileEntity +( + ForeshoreProfileEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + Id VARCHAR (260) NOT NULL, + Name VARCHAR (260) NOT NULL, + Orientation REAL NULL, + BreakWaterType TINYINT (1) NULL, -- Enum: 1 = Wall, 2 = Caisson, 3 = Dam + BreakWaterHeight REAL NULL, + GeometryXml TEXT NOT NULL COLLATE NOCASE, + X REAL NULL, + Y REAL NULL, + X0 REAL NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_ForeshoreProfileEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT UQ_ForeshoreProfileEntity_IdFailureMechanismEntityId UNIQUE (Id,FailureMechanismEntityId) + ) +; + +CREATE TABLE GeneralResultFaultTreeIllustrationPointEntity +( + GeneralResultFaultTreeIllustrationPointEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + GoverningWindDirectionName TEXT NOT NULL COLLATE NOCASE, + GoverningWindDirectionAngle REAL NOT NULL +) +; + +CREATE TABLE GeneralResultFaultTreeIllustrationPointStochastEntity +( + GeneralResultFaultTreeIllustrationPointEntityId INTEGER NOT NULL, + StochastEntityId INTEGER NOT NULL, + CONSTRAINT PK_GeneralResultFaultTreeIllustrationPointStochastEntity PRIMARY KEY (GeneralResultFaultTreeIllustrationPointEntityId,StochastEntityId), + CONSTRAINT FK_GeneralResultFaultTreeIllustrationPointStochastEntity_GeneralResultFaultTreeIllustrationPointEntity FOREIGN KEY (GeneralResultFaultTreeIllustrationPointEntityId) REFERENCES GeneralResultFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_GeneralResultFaultTreeIllustrationPointStochastEntity_StochastEntity FOREIGN KEY (StochastEntityId) REFERENCES StochastEntity (StochastEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE GeneralResultSubMechanismIllustrationPointEntity +( + GeneralResultSubMechanismIllustrationPointEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + GoverningWindDirectionName TEXT NOT NULL COLLATE NOCASE, + GoverningWindDirectionAngle REAL NOT NULL +) +; + +CREATE TABLE GeneralResultSubMechanismIllustrationPointStochastEntity +( + GeneralResultSubMechanismIllustrationPointEntityId INTEGER NOT NULL, + StochastEntityId INTEGER NOT NULL, + CONSTRAINT PK_GeneralResultSubMechanismIllustrationPointStochastEntity PRIMARY KEY (GeneralResultSubMechanismIllustrationPointEntityId,StochastEntityId), + CONSTRAINT FK_GeneralResultSubMechanisIllustrationPointStochastEntity_GeneralResultSubMechanismIllustrationPointEntity FOREIGN KEY (GeneralResultSubMechanismIllustrationPointEntityId) REFERENCES GeneralResultSubMechanismIllustrationPointEntity (GeneralResultSubMechanismIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_GeneralResultSubMechanismIllustrationPointStochastEntity_StochastEntity FOREIGN KEY (StochastEntityId) REFERENCES StochastEntity (StochastEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE GrassCoverErosionInwardsDikeHeightOutputEntity +( + GrassCoverErosionInwardsDikeHeightOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + GrassCoverErosionInwardsOutputEntityId INTEGER NOT NULL, + GeneralResultFaultTreeIllustrationPointEntityId INTEGER NULL, + DikeHeight REAL NULL, + TargetProbability REAL NULL, + TargetReliability REAL NULL, + CalculatedProbability REAL NULL, + CalculatedReliability REAL NULL, + CalculationConvergence TINYINT (1) NOT NULL, -- Enum: 1 = NotCalculated, 2 = CalculationNotConverged, 3 = CalculationConverged + CONSTRAINT FK_GrassCoverErosionInwardsDikeHeightOutputEntity_GeneralResultFaultTreeIllustrationPointEntity FOREIGN KEY (GeneralResultFaultTreeIllustrationPointEntityId) REFERENCES GeneralResultFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_GrassCoverErosionInwardsDikeHeightOutputEntity_GrassCoverErosionInwardsOutputEntity FOREIGN KEY (GrassCoverErosionInwardsOutputEntityId) REFERENCES GrassCoverErosionInwardsOutputEntity (GrassCoverErosionInwardsOutputEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_GrassCoverErosionInwardsOutputEntity UNIQUE (GrassCoverErosionInwardsOutputEntityId) +) +; + +CREATE TABLE GrassCoverErosionInwardsOutputEntity +( + GrassCoverErosionInwardsOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + GrassCoverErosionInwardsCalculationEntityId INTEGER NOT NULL, + GeneralResultFaultTreeIllustrationPointEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + IsOvertoppingDominant TINYINT (1) NOT NULL, -- true or false + WaveHeight REAL NULL, + Reliability REAL NULL, + CONSTRAINT FK_GrassCoverErosionInwardsOutputEntity_GeneralResultFaultTreeIllustrationPointEntity FOREIGN KEY (GeneralResultFaultTreeIllustrationPointEntityId) REFERENCES GeneralResultFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_GrassCoverErosionInwardsOutputEntity_GrassCoverErosionInwardsCalculationEntity FOREIGN KEY (GrassCoverErosionInwardsCalculationEntityId) REFERENCES GrassCoverErosionInwardsCalculationEntity (GrassCoverErosionInwardsCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_GrassCoverErosionInwardsCalculationEntity UNIQUE (GrassCoverErosionInwardsCalculationEntityId) + ) +; + +CREATE TABLE GrassCoverErosionInwardsOvertoppingRateOutputEntity +( + GrassCoverErosionInwardsOvertoppingRateOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + GrassCoverErosionInwardsOutputEntityId INTEGER NOT NULL, + GeneralResultFaultTreeIllustrationPointEntityId INTEGER NULL, + OvertoppingRate REAL NULL, + TargetProbability REAL NULL, + TargetReliability REAL NULL, + CalculatedProbability REAL NULL, + CalculatedReliability REAL NULL, + CalculationConvergence TINYINT (1) NOT NULL, -- Enum: 1 = NotCalculated, 2 = CalculationNotConverged, 3 = CalculationConverged + CONSTRAINT FK_GrassCoverErosionInwardsOvertoppingRateOutputEntity_GeneralResultFaultTreeIllustrationPointEntity FOREIGN KEY (GeneralResultFaultTreeIllustrationPointEntityId) REFERENCES GeneralResultFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_GrassCoverErosionInwardsOvertoppingRateOutputEntity_GrassCoverErosionInwardsOutputEntity FOREIGN KEY (GrassCoverErosionInwardsOutputEntityId) REFERENCES GrassCoverErosionInwardsOutputEntity (GrassCoverErosionInwardsOutputEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_GrassCoverErosionInwardsOutputEntity UNIQUE (GrassCoverErosionInwardsOutputEntityId) +) +; + +CREATE TABLE GrassCoverErosionOutwardsWaveConditionsCalculationEntity +( + GrassCoverErosionOutwardsWaveConditionsCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + CalculationGroupEntityId INTEGER NOT NULL, + ForeshoreProfileEntityId INTEGER NULL, + HydraulicLocationEntityId INTEGER NULL, + HydraulicLocationCalculationForTargetProbabilityCollectionEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NULL, + Comments TEXT NULL COLLATE NOCASE, + UseBreakWater TINYINT (1) NOT NULL, -- true or false + BreakWaterType TINYINT (1) NOT NULL, -- Enum: 1 = Wall, 2 = Caisson, 3 = Dam + BreakWaterHeight REAL NULL, + UseForeshore TINYINT (1) NOT NULL, -- true or false + Orientation REAL NULL, + UpperBoundaryRevetment REAL NULL, + LowerBoundaryRevetment REAL NULL, + UpperBoundaryWaterLevels REAL NULL, + LowerBoundaryWaterLevels REAL NULL, + StepSize REAL NOT NULL, + CalculationType TINYINT (1) NOT NULL, -- Enum: 1 = WaveRunUp 2 = WaveImpact 3 = WaveRunUpAndWaveImpact 4 = WaveImpactWithWaveDirection 5 = WaveRunUpAndWaveImpactWithWaveDirection 6 = All + WaterLevelType TINYINT (1) NOT NULL, -- Enum: 1 = None, 2 = MaximumAllowableFloodingProbability, 3 = SignalFloodingProbability, 4 = UserDefinedTargetProbability + CONSTRAINT FK_GrassCoverErosionOutwardsWaveConditionsCalculationEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_GrassCoverErosionOutwardsWaveConditionsCalculationEntity_ForeshoreProfileEntity FOREIGN KEY (ForeshoreProfileEntityId) REFERENCES ForeshoreProfileEntity (ForeshoreProfileEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_GrassCoverErosionOutwardsWaveConditionsCalculationEntity_HydraulicLocationCalculationForTargetProbabilityCollectionEntity FOREIGN KEY (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId) REFERENCES HydraulicLocationCalculationForTargetProbabilityCollectionEntity (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_GrassCoverErosionOutwardsWaveConditionsCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Set Null ON UPDATE Cascade + ) +; + +CREATE TABLE GrassCoverErosionOutwardsWaveConditionsOutputEntity +( + GrassCoverErosionOutwardsWaveConditionsOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + GrassCoverErosionOutwardsWaveConditionsCalculationEntityId INTEGER NOT NULL, + 'Order' INT (4) NOT NULL, + OutputType TINYINT (1) NOT NULL, -- Enum: 1 = WaveRunUp 2 = WaveImpact 3 = WaveImpactWithWaveDirection + WaterLevel REAL NULL, + WaveHeight REAL NULL, + WavePeakPeriod REAL NULL, + WaveAngle REAL NULL, + WaveDirection REAL NULL, + TargetProbability REAL NULL, + TargetReliability REAL NULL, + CalculatedProbability REAL NULL, + CalculatedReliability REAL NULL, + CalculationConvergence TINYINT (1) NOT NULL, -- Enum: 1 = NotCalculated, 2 = CalculationNotConverged, 3 = CalculationConverged + CONSTRAINT FK_GrassCoverErosionOutwardsWaveConditionsOutputEntity_GrassCoverErosionOutwardsWaveConditionsCalculationEntity FOREIGN KEY (GrassCoverErosionOutwardsWaveConditionsCalculationEntityId) REFERENCES GrassCoverErosionOutwardsWaveConditionsCalculationEntity (GrassCoverErosionOutwardsWaveConditionsCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE HeightStructureEntity +( + HeightStructureEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NOT NULL, + Id VARCHAR (260) NOT NULL, + X REAL NULL, + Y REAL NULL, + StructureNormalOrientation REAL NULL, + LevelCrestStructureMean REAL NULL, + LevelCrestStructureStandardDeviation REAL NULL, + FlowWidthAtBottomProtectionMean REAL NULL, + FlowWidthAtBottomProtectionStandardDeviation REAL NULL, + CriticalOvertoppingDischargeMean REAL NULL, + CriticalOvertoppingDischargeCoefficientOfVariation REAL NULL, + WidthFlowAperturesMean REAL NULL, + WidthFlowAperturesStandardDeviation REAL NULL, + FailureProbabilityStructureWithErosion REAL NULL, + StorageStructureAreaMean REAL NULL, + StorageStructureAreaCoefficientOfVariation REAL NULL, + AllowedLevelIncreaseStorageMean REAL NULL, + AllowedLevelIncreaseStorageStandardDeviation REAL NULL, + CONSTRAINT FK_HeightStructure_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_Id_FailureMechanismEntityId UNIQUE (FailureMechanismEntityId,Id) + ) +; + +CREATE TABLE HeightStructuresCalculationEntity +( + HeightStructuresCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + CalculationGroupEntityId INTEGER NOT NULL, + HydraulicLocationEntityId INTEGER NULL, + HeightStructureEntityId INTEGER NULL, + ForeshoreProfileEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NULL, + Comments TEXT NULL COLLATE NOCASE, + ModelFactorSuperCriticalFlowMean REAL NULL, + StructureNormalOrientation REAL NULL, + AllowedLevelIncreaseStorageMean REAL NULL, + AllowedLevelIncreaseStorageStandardDeviation REAL NULL, + StorageStructureAreaMean REAL NULL, + StorageStructureAreaCoefficientOfVariation REAL NULL, + FlowWidthAtBottomProtectionMean REAL NULL, + FlowWidthAtBottomProtectionStandardDeviation REAL NULL, + CriticalOvertoppingDischargeMean REAL NULL, + CriticalOvertoppingDischargeCoefficientOfVariation REAL NULL, + FailureProbabilityStructureWithErosion REAL NOT NULL, + WidthFlowAperturesMean REAL NULL, + WidthFlowAperturesStandardDeviation REAL NULL, + StormDurationMean REAL NULL, + LevelCrestStructureMean REAL NULL, + LevelCrestStructureStandardDeviation REAL NULL, + DeviationWaveDirection REAL NULL, + UseBreakWater TINYINT (1) NOT NULL, -- true or false + UseForeshore TINYINT (1) NOT NULL, -- true or false + BreakWaterType TINYINT (1) NOT NULL, -- Enum: 1 = Wall, 2 = Caisson, 3 = Dam + BreakWaterHeight REAL NULL, + ShouldIllustrationPointsBeCalculated TINYINT (1) NOT NULL, -- true or false + RelevantForScenario TINYINT (1) NOT NULL, -- true or false + ScenarioContribution REAL NOT NULL, + CONSTRAINT FK_HeightStructuresCalculationEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_HeightStructuresCalculationEntity_ForeshoreProfileEntity FOREIGN KEY (ForeshoreProfileEntityId) REFERENCES ForeshoreProfileEntity (ForeshoreProfileEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_HeightStructuresCalculationEntity_HeightStructureEntity FOREIGN KEY (HeightStructureEntityId) REFERENCES HeightStructureEntity (HeightStructureEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_HeightStructuresCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Set Null ON UPDATE Cascade + ) +; + +CREATE TABLE HeightStructuresFailureMechanismMetaEntity +( + HeightStructuresFailureMechanismMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + HeightStructureCollectionSourcePath TEXT NULL COLLATE NOCASE, + ForeshoreProfileCollectionSourcePath TEXT NULL COLLATE NOCASE, + CONSTRAINT FK_HeightStructuresFailureMechanismMetaEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE HeightStructuresOutputEntity +( + HeightStructuresOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + HeightStructuresCalculationEntityId INTEGER NOT NULL, + GeneralResultFaultTreeIllustrationPointEntityId INTEGER NULL, + Reliability REAL NULL, + CONSTRAINT FK_HeightStructuresOutputEntity_GeneralResultFaultTreeIllustrationPointEntity FOREIGN KEY (GeneralResultFaultTreeIllustrationPointEntityId) REFERENCES GeneralResultFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_HeightStructuresOutputEntity_HeightStructuresCalculationEntity FOREIGN KEY (HeightStructuresCalculationEntityId) REFERENCES HeightStructuresCalculationEntity (HeightStructuresCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_HeightStructuresCalculationEntity UNIQUE (HeightStructuresCalculationEntityId) +) +; + +CREATE TABLE HydraulicBoundaryDatabaseEntity +( + HydraulicBoundaryDatabaseEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + HydraulicBoundaryDataEntityId INTEGER NOT NULL, + Version TEXT NOT NULL COLLATE NOCASE, + FilePath TEXT NOT NULL COLLATE NOCASE, + UsePreprocessorClosure TINYINT (1) NOT NULL, -- True or false + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_HydraulicBoundaryDatabaseEntity_HydraulicBoundaryDataEntity FOREIGN KEY (HydraulicBoundaryDataEntityId) REFERENCES HydraulicBoundaryDataEntity (HydraulicBoundaryDataEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE HydraulicBoundaryDataEntity +( + HydraulicBoundaryDataEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + AssessmentSectionEntityId INTEGER NOT NULL, + HydraulicLocationConfigurationDatabaseFilePath TEXT NOT NULL COLLATE NOCASE, + HydraulicLocationConfigurationDatabaseScenarioName TEXT NOT NULL COLLATE NOCASE, + HydraulicLocationConfigurationDatabaseYear INT (4) NOT NULL, + HydraulicLocationConfigurationDatabaseScope TEXT NOT NULL COLLATE NOCASE, + HydraulicLocationConfigurationDatabaseSeaLevel TEXT NULL COLLATE NOCASE, + HydraulicLocationConfigurationDatabaseRiverDischarge TEXT NULL COLLATE NOCASE, + HydraulicLocationConfigurationDatabaseLakeLevel TEXT NULL COLLATE NOCASE, + HydraulicLocationConfigurationDatabaseWindDirection TEXT NULL COLLATE NOCASE, + HydraulicLocationConfigurationDatabaseWindSpeed TEXT NULL COLLATE NOCASE, + HydraulicLocationConfigurationDatabaseComment TEXT NULL COLLATE NOCASE, + CONSTRAINT FK_HydraulicBoundaryDatabaseEntity_AssessmentSectionEntity FOREIGN KEY (AssessmentSectionEntityId) REFERENCES AssessmentSectionEntity (AssessmentSectionEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE HydraulicLocationCalculationCollectionEntity +( + HydraulicLocationCalculationCollectionEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT +) +; + +CREATE TABLE HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity +( + HydraulicLocationCalculationCollectionEntityId INTEGER NOT NULL, + HydraulicLocationCalculationEntityId INTEGER NOT NULL, + CONSTRAINT PK_HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity PRIMARY KEY (HydraulicLocationCalculationCollectionEntityId,HydraulicLocationCalculationEntityId), + CONSTRAINT HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity_HydraulicLocationCalculationCollectionEntityId FOREIGN KEY (HydraulicLocationCalculationCollectionEntityId) REFERENCES HydraulicLocationCalculationCollectionEntity (HydraulicLocationCalculationCollectionEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT HydraulicLocationCalculationEntityId FOREIGN KEY (HydraulicLocationCalculationEntityId) REFERENCES HydraulicLocationCalculationEntity (HydraulicLocationCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE HydraulicLocationCalculationEntity +( + HydraulicLocationCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + HydraulicLocationEntityId INTEGER NOT NULL, + ShouldIllustrationPointsBeCalculated TINYINT (1) NOT NULL, -- True or false + CONSTRAINT FK_HydraulicLocationCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE HydraulicLocationCalculationForTargetProbabilityCollectionEntity +( + HydraulicLocationCalculationForTargetProbabilityCollectionEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + AssessmentSectionEntityId INTEGER NOT NULL, + 'Order' INT (4) NOT NULL, + HydraulicBoundaryLocationCalculationType TINYINT (1) NOT NULL, -- Enum: 1 = Waterlevel 2 = Waveheight + TargetProbability REAL NOT NULL, + CONSTRAINT FK_HydraulicBoundaryLocationCalculationsForTargetProbabilityEntity_AssessmentSectionEntity FOREIGN KEY (AssessmentSectionEntityId) REFERENCES AssessmentSectionEntity (AssessmentSectionEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE HydraulicLocationCalculationForTargetProbabilityCollectionHydraulicLocationCalculationEntity +( + HydraulicLocationCalculationForTargetProbabilityCollectionEntityId INTEGER NOT NULL, + HydraulicLocationCalculationEntityId INTEGER NOT NULL, + CONSTRAINT PK_HydraulicBoundaryLocationCalculationsForTargetProbabilityHydraulicLocationCalculationEntity PRIMARY KEY (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId,HydraulicLocationCalculationEntityId), + CONSTRAINT HydraulicBoundaryLocationCalculationsForTargetProbabilityHydraulicLocationCalculationEntity_HydraulicBoundaryLocationCalculationsForTargetProbabilityEntityId FOREIGN KEY (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId) REFERENCES HydraulicLocationCalculationForTargetProbabilityCollectionEntity (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT HydraulicBoundaryLocationCalculationsForTargetProbabilityHydraulicLocationCalculationEntity_HydraulicLocationCalculationEntityId FOREIGN KEY (HydraulicLocationCalculationEntityId) REFERENCES HydraulicLocationCalculationEntity (HydraulicLocationCalculationEntityId) ON DELETE No Action ON UPDATE No Action +) +; + +CREATE TABLE HydraulicLocationOutputEntity +( + HydraulicLocationOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + HydraulicLocationCalculationEntityId INTEGER NOT NULL, + GeneralResultSubMechanismIllustrationPointEntityId INTEGER NULL, + Result REAL NULL, + TargetProbability REAL NULL, + TargetReliability REAL NULL, + CalculatedProbability REAL NULL, + CalculatedReliability REAL NULL, + CalculationConvergence TINYINT (1) NOT NULL, -- Enum: 1 = NotCalculated, 2 = CalculatedNotConverged, 3 = CalculatedConverged + CONSTRAINT FK_HydraulicLocationOutputEntity_GeneralResultSubMechanismIllustrationPointEntity FOREIGN KEY (GeneralResultSubMechanismIllustrationPointEntityId) REFERENCES GeneralResultSubMechanismIllustrationPointEntity (GeneralResultSubMechanismIllustrationPointEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_HydraulicLocationOutputEntity_HydraulicLocationCalculationEntity FOREIGN KEY (HydraulicLocationCalculationEntityId) REFERENCES HydraulicLocationCalculationEntity (HydraulicLocationCalculationEntityId) ON DELETE Set Null ON UPDATE Cascade +) +; + +CREATE TABLE IllustrationPointResultEntity +( + IllustrationPointResultEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + SubMechanismIllustrationPointEntityId INTEGER NOT NULL, + Description TEXT NOT NULL COLLATE NOCASE, + Unit TEXT NOT NULL COLLATE NOCASE, + Value REAL NOT NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_IllustrationPointResultEntity_SubMechanismIllustrationPointEntity FOREIGN KEY (SubMechanismIllustrationPointEntityId) REFERENCES SubMechanismIllustrationPointEntity (SubMechanismIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE MacroStabilityInwardsCalculationEntity +( + MacroStabilityInwardsCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + CalculationGroupEntityId INTEGER NOT NULL, + SurfaceLineEntityId INTEGER NULL, + MacroStabilityInwardsStochasticSoilProfileEntityId INTEGER NULL, + HydraulicLocationEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NULL, + Comment TEXT NULL COLLATE NOCASE, + RelevantForScenario TINYINT (1) NOT NULL, -- true or false + ScenarioContribution REAL NOT NULL, + AssessmentLevel REAL NULL, + UseAssessmentLevelManualInput TINYINT (1) NOT NULL, -- true or false + SlipPlaneMinimumDepth REAL NULL, + SlipPlaneMinimumLength REAL NULL, + MaximumSliceWidth REAL NULL, + MoveGrid TINYINT (1) NOT NULL, -- true or false + GridDeterminationType TINYINT (1) NOT NULL, -- Enumtype: 1 = Automatic, 2 = Manual + TangentLineDeterminationType TINYINT (1) NOT NULL, -- Enumtype: 1 = Specified, 2 = LayerSeparated + TangentLineZTop REAL NULL, + TangentLineZBottom REAL NULL, + TangentLineNumber INT (4) NOT NULL, + LeftGridXLeft REAL NULL, + LeftGridXRight REAL NULL, + LeftGridNrOfHorizontalPoints INT (4) NOT NULL, + LeftGridZTop REAL NULL, + LeftGridZBottom REAL NULL, + LeftGridNrOfVerticalPoints INT (4) NOT NULL, + RightGridXLeft REAL NULL, + RightGridXRight REAL NULL, + RightGridNrOfHorizontalPoints INT (4) NOT NULL, + RightGridZTop REAL NULL, + RightGridZBottom REAL NULL, + RightGridNrOfVerticalPoints INT (4) NOT NULL, + DikeSoilScenario TINYINT (1) NOT NULL, -- Enumtype: 1 = ClayDikeOnClay, 2 = SandDikeOnClay, 3 = ClayDikeOnSand, 4 = SandDikeOnSand + WaterLevelRiverAverage REAL NULL, + DrainageConstructionPresent TINYINT (1) NOT NULL, -- true or false + DrainageConstructionCoordinateX REAL NULL, + DrainageConstructionCoordinateZ REAL NULL, + MinimumLevelPhreaticLineAtDikeTopRiver REAL NULL, + MinimumLevelPhreaticLineAtDikeTopPolder REAL NULL, + AdjustPhreaticLine3And4ForUplift TINYINT (1) NOT NULL, -- true or false + LeakageLengthOutwardsPhreaticLine3 REAL NULL, + LeakageLengthInwardsPhreaticLine3 REAL NULL, + LeakageLengthOutwardsPhreaticLine4 REAL NULL, + LeakageLengthInwardsPhreaticLine4 REAL NULL, + PiezometricHeadPhreaticLine2Outwards REAL NULL, + PiezometricHeadPhreaticLine2Inwards REAL NULL, + LocationInputExtremeWaterLevelPolder REAL NULL, + LocationInputExtremeUseDefaultOffsets TINYINT (1) NOT NULL, -- true or false + LocationInputExtremePhreaticLineOffsetBelowDikeTopAtRiver REAL NULL, + LocationInputExtremePhreaticLineOffsetBelowDikeTopAtPolder REAL NULL, + LocationInputExtremePhreaticLineOffsetBelowShoulderBaseInside REAL NULL, + LocationInputExtremePhreaticLineOffsetDikeToeAtPolder REAL NULL, + LocationInputExtremePenetrationLength REAL NULL, + LocationInputDailyWaterLevelPolder REAL NULL, + LocationInputDailyUseDefaultOffsets TINYINT (1) NOT NULL, -- true or false + LocationInputDailyPhreaticLineOffsetBelowDikeTopAtRiver REAL NULL, + LocationInputDailyPhreaticLineOffsetBelowDikeTopAtPolder REAL NULL, + LocationInputDailyPhreaticLineOffsetBelowShoulderBaseInside REAL NULL, + LocationInputDailyPhreaticLineOffsetDikeToeAtPolder REAL NULL, + CreateZones TINYINT (1) NOT NULL, -- true or false + ZoningBoundariesDeterminationType TINYINT (1) NOT NULL, -- Enumtype: 1 = Automatic 2 = Manual + ZoneBoundaryLeft REAL NULL, + ZoneBoundaryRight REAL NULL, + CONSTRAINT FK_MacroStabilityInwardsCalculationEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_MacroStabilityInwardsCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_MacroStabilityInwardsCalculationEntity_MacroStabilityInwardsStochasticSoilProfileEntity FOREIGN KEY (MacroStabilityInwardsStochasticSoilProfileEntityId) REFERENCES MacroStabilityInwardsStochasticSoilProfileEntity (MacroStabilityInwardsStochasticSoilProfileEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_MacroStabilityInwardsCalculationEntity_SurfaceLineEntity FOREIGN KEY (SurfaceLineEntityId) REFERENCES SurfaceLineEntity (SurfaceLineEntityId) ON DELETE Set Null ON UPDATE Cascade + ) +; + +CREATE TABLE MacroStabilityInwardsCalculationOutputEntity +( + MacroStabilityInwardsCalculationOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + MacroStabilityInwardsCalculationEntityId INTEGER NOT NULL, + FactorOfStability REAL NULL, + ForbiddenZonesXEntryMin REAL NULL, + ForbiddenZonesXEntryMax REAL NULL, + SlidingCurveLeftSlidingCircleCenterX REAL NULL, + SlidingCurveLeftSlidingCircleCenterY REAL NULL, + SlidingCurveLeftSlidingCircleRadius REAL NULL, + SlidingCurveLeftSlidingCircleIsActive TINYINT (1) NOT NULL, -- true or false + SlidingCurveLeftSlidingCircleNonIteratedForce REAL NULL, + SlidingCurveLeftSlidingCircleIteratedForce REAL NULL, + SlidingCurveLeftSlidingCircleDrivingMoment REAL NULL, + SlidingCurveLeftSlidingCircleResistingMoment REAL NULL, + SlidingCurveRightSlidingCircleCenterX REAL NULL, + SlidingCurveRightSlidingCircleCenterY REAL NULL, + SlidingCurveRightSlidingCircleRadius REAL NULL, + SlidingCurveRightSlidingCircleIsActive TINYINT (1) NOT NULL, -- true or false + SlidingCurveRightSlidingCircleNonIteratedForce REAL NULL, + SlidingCurveRightSlidingCircleIteratedForce REAL NULL, + SlidingCurveRightSlidingCircleDrivingMoment REAL NULL, + SlidingCurveRightSlidingCircleResistingMoment REAL NULL, + SlidingCurveNonIteratedHorizontalForce REAL NULL, + SlidingCurveIteratedHorizontalForce REAL NULL, + SlidingCurveSliceXML TEXT NOT NULL COLLATE NOCASE, -- XML representation of MacroStabilityInwardsSlice + SlipPlaneLeftGridXLeft REAL NULL, + SlipPlaneLeftGridXRight REAL NULL, + SlipPlaneLeftGridNrOfHorizontalPoints INT (4) NOT NULL, + SlipPlaneLeftGridZTop REAL NULL, + SlipPlaneLeftGridZBottom REAL NULL, + SlipPlaneLeftGridNrOfVerticalPoints INT (4) NOT NULL, + SlipPlaneRightGridXLeft REAL NULL, + SlipPlaneRightGridXRight REAL NULL, + SlipPlaneRightGridNrOfHorizontalPoints INT (4) NOT NULL, + SlipPlaneRightGridZTop REAL NULL, + SlipPlaneRightGridZBottom REAL NULL, + SlipPlaneRightGridNrOfVerticalPoints INT (4) NOT NULL, + SlipPlaneTangentLinesXml TEXT NOT NULL COLLATE NOCASE, -- XML representation of TangentLines + CONSTRAINT FK_MacroStabilityInwardsCalculationOutput_MacroStabilityInwardsCalculationEntity FOREIGN KEY (MacroStabilityInwardsCalculationEntityId) REFERENCES MacroStabilityInwardsCalculationEntity (MacroStabilityInwardsCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE MacroStabilityInwardsCharacteristicPointEntity +( + MacroStabilityInwardsCharacteristicPointEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + SurfaceLineEntityId INTEGER NOT NULL, + Type SMALLINT NOT NULL, -- Enumtype: 1 = SurfaceLevelOutside 2 = DikeTopAtRiver 3 = DikeToeAtRiver 4 = DikeTopAtPolder 5 = ShoulderBaseInside 6 = ShoulderTopInside 7 = DikeToeAtPolder 8 = DitchDikeSide 9 = BottomDitchDikeSide 10 = BottomDitchPolderSide 11 = DitchPolderSide 12 = SurfaceLevelInside + X REAL NULL, + Y REAL NULL, + Z REAL NULL, + CONSTRAINT FK_MacroStabilityInwardsCharacteristicPointEntity_SurfaceLineEntity FOREIGN KEY (SurfaceLineEntityId) REFERENCES SurfaceLineEntity (SurfaceLineEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE MacroStabilityInwardsFailureMechanismMetaEntity +( + MacroStabilityInwardsFailureMechanismMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + StochasticSoilModelCollectionSourcePath TEXT NULL COLLATE NOCASE, + SurfaceLineCollectionSourcePath TEXT NULL COLLATE NOCASE, + CONSTRAINT FK_MacroStabilityInwardsFailureMechanismMetaEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE MacroStabilityInwardsFailureMechanismSectionConfigurationEntity +( + MacroStabilityInwardsFailureMechanismSectionConfigurationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismSectionEntityId INTEGER NOT NULL, + A REAL NOT NULL, + CONSTRAINT FK_MacroStabilityInwardsFailureMechanismSectionConfigurationEntity_FailureMechanismSectionEntity FOREIGN KEY (FailureMechanismSectionEntityId) REFERENCES FailureMechanismSectionEntity (FailureMechanismSectionEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE MacroStabilityInwardsPreconsolidationStressEntity +( + MacroStabilityInwardsPreconsolidationStressEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + MacroStabilityInwardsSoilProfileTwoDEntityId INTEGER NOT NULL, + CoordinateX REAL NOT NULL, + CoordinateZ REAL NOT NULL, + PreconsolidationStressMean REAL NULL, + PreconsolidationStressCoefficientOfVariation REAL NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_MacroStabilityInwardsPreconsolidationStressEntity_MacroStabilityInwardsSoilProfileTwoDEntity FOREIGN KEY (MacroStabilityInwardsSoilProfileTwoDEntityId) REFERENCES MacroStabilityInwardsSoilProfileTwoDEntity (MacroStabilityInwardsSoilProfileTwoDEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE MacroStabilityInwardsSoilLayerOneDEntity +( + MacroStabilityInwardsSoilLayerOneDEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + MacroStabilityInwardsSoilProfileOneDEntityId INTEGER NOT NULL, + Top REAL NULL, + IsAquifer TINYINT (1) NOT NULL, -- true or false + Color INTEGER NULL, -- ARGB value of Color. + MaterialName TEXT NOT NULL COLLATE NOCASE, + ShearStrengthModel TINYINT (1) NOT NULL, -- Enumtype: 1 = SuCalculated, 2 = CPhi, 3 = CPhiOrSuCalculated + UsePop TINYINT (1) NOT NULL, -- true of false + AbovePhreaticLevelMean REAL NULL, + AbovePhreaticLevelCoefficientOfVariation REAL NULL, + AbovePhreaticLevelShift REAL NULL, + BelowPhreaticLevelMean REAL NULL, + BelowPhreaticLevelCoefficientOfVariation REAL NULL, + BelowPhreaticLevelShift REAL NULL, + CohesionMean REAL NULL, + CohesionCoefficientOfVariation REAL NULL, + FrictionAngleMean REAL NULL, + FrictionAngleCoefficientOfVariation REAL NULL, + ShearStrengthRatioMean REAL NULL, + ShearStrengthRatioCoefficientOfVariation REAL NULL, + StrengthIncreaseExponentMean REAL NULL, + StrengthIncreaseExponentCoefficientOfVariation REAL NULL, + PopMean REAL NULL, + PopCoefficientOfVariation REAL NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_MacroStabilityInwardsSoilLayerOneDEntity_MacroStabilityInwardsSoilProfileOneDEntity FOREIGN KEY (MacroStabilityInwardsSoilProfileOneDEntityId) REFERENCES MacroStabilityInwardsSoilProfileOneDEntity (MacroStabilityInwardsSoilProfileOneDEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE MacroStabilityInwardsSoilLayerTwoDEntity +( + MacroStabilityInwardsSoilLayerTwoDEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + ParentMacroStabilityInwardsSoilLayerTwoDEntityId INTEGER NULL, + IsAquifer TINYINT (1) NOT NULL, -- true or false + Color INTEGER NULL, -- ARGB value of Color. + MaterialName TEXT NOT NULL COLLATE NOCASE, + ShearStrengthModel TINYINT (1) NOT NULL, -- Enumtype: 1 = SuCalculated, 2 = CPhi, 3 = CPhiOrSuCalculated + UsePop TINYINT (1) NOT NULL, -- true of false + AbovePhreaticLevelMean REAL NULL, + AbovePhreaticLevelCoefficientOfVariation REAL NULL, + AbovePhreaticLevelShift REAL NULL, + BelowPhreaticLevelMean REAL NULL, + BelowPhreaticLevelCoefficientOfVariation REAL NULL, + BelowPhreaticLevelShift REAL NULL, + CohesionMean REAL NULL, + CohesionCoefficientOfVariation REAL NULL, + FrictionAngleMean REAL NULL, + FrictionAngleCoefficientOfVariation REAL NULL, + ShearStrengthRatioMean REAL NULL, + ShearStrengthRatioCoefficientOfVariation REAL NULL, + StrengthIncreaseExponentMean REAL NULL, + StrengthIncreaseExponentCoefficientOfVariation REAL NULL, + PopMean REAL NULL, + PopCoefficientOfVariation REAL NULL, + OuterRingXml TEXT NOT NULL COLLATE NOCASE, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_MacroStabilityInwardsSoilLayerTwoDEntity_MacroStabilityInwardsSoilLayerTwoDEntity FOREIGN KEY (ParentMacroStabilityInwardsSoilLayerTwoDEntityId) REFERENCES MacroStabilityInwardsSoilLayerTwoDEntity (MacroStabilityInwardsSoilLayerTwoDEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE MacroStabilityInwardsSoilProfileOneDEntity +( + MacroStabilityInwardsSoilProfileOneDEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + Name TEXT NOT NULL COLLATE NOCASE, + Bottom REAL NULL +) +; + +CREATE TABLE MacroStabilityInwardsSoilProfileTwoDEntity +( + MacroStabilityInwardsSoilProfileTwoDEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + Name TEXT NOT NULL COLLATE NOCASE +) +; + +CREATE TABLE MacroStabilityInwardsSoilProfileTwoDSoilLayerTwoDEntity +( + MacroStabilityInwardsSoilProfileTwoDEntityId INTEGER NOT NULL, + MacroStabilityInwardsSoilLayerTwoDEntityId INTEGER NOT NULL, + CONSTRAINT PK_MacroStabilityInwardsSoilProfileTwoDSoilLayerTwoDEntity PRIMARY KEY (MacroStabilityInwardsSoilProfileTwoDEntityId,MacroStabilityInwardsSoilLayerTwoDEntityId), + CONSTRAINT FK_MacroStabilityInwardsSoilProfileTwoDSoilLayerTwoDEntity_MacroStabilityInwardsSoilLayerTwoDEntity FOREIGN KEY (MacroStabilityInwardsSoilLayerTwoDEntityId) REFERENCES MacroStabilityInwardsSoilLayerTwoDEntity (MacroStabilityInwardsSoilLayerTwoDEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_MacroStabilityInwardsSoilProfileTwoDSoilLayerTwoDEntity_MacroStabilityInwardsSoilProfileTwoDEntity FOREIGN KEY (MacroStabilityInwardsSoilProfileTwoDEntityId) REFERENCES MacroStabilityInwardsSoilProfileTwoDEntity (MacroStabilityInwardsSoilProfileTwoDEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE MacroStabilityInwardsStochasticSoilProfileEntity +( + MacroStabilityInwardsStochasticSoilProfileEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + StochasticSoilModelEntityId INTEGER NOT NULL, + MacroStabilityInwardsSoilProfileOneDEntityId INTEGER NULL, + MacroStabilityInwardsSoilProfileTwoDEntityId INTEGER NULL, + Probability REAL NOT NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_MacroStabilityInwardsStochasticSoilProfileEntity_MacroStabilityInwardsSoilProfileOneDEntity FOREIGN KEY (MacroStabilityInwardsSoilProfileOneDEntityId) REFERENCES MacroStabilityInwardsSoilProfileOneDEntity (MacroStabilityInwardsSoilProfileOneDEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_MacroStabilityInwardsStochasticSoilProfileEntity_MacroStabilityInwardsSoilProfileTwoDEntity FOREIGN KEY (MacroStabilityInwardsSoilProfileTwoDEntityId) REFERENCES MacroStabilityInwardsSoilProfileTwoDEntity (MacroStabilityInwardsSoilProfileTwoDEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_MacroStabilityInwardsStochasticSoilProfileEntity_StochasticSoilModelEntity FOREIGN KEY (StochasticSoilModelEntityId) REFERENCES StochasticSoilModelEntity (StochasticSoilModelEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE NonAdoptableFailureMechanismSectionResultEntity +( + NonAdoptableFailureMechanismSectionResultEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismSectionEntityId INTEGER NOT NULL, + IsRelevant TINYINT (1) NOT NULL, -- true or false + InitialFailureMechanismResultType TINYINT (1) NOT NULL, -- Enum: Manual = 1, NoFailureProbability = 2 + ManualInitialFailureMechanismResultSectionProbability REAL NULL, + FurtherAnalysisType TINYINT (1) NOT NULL, -- Enum: NotNecessary = 1 Necessary = 2 Executed = 3 + RefinedSectionProbability REAL NULL, + CONSTRAINT FK_NonAdoptableFailureMechanismSectionResultEntity_FailureMechanismSectionEntity FOREIGN KEY (FailureMechanismSectionEntityId) REFERENCES FailureMechanismSectionEntity (FailureMechanismSectionEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE PipingFailureMechanismMetaEntity +( + PipingFailureMechanismMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + WaterVolumetricWeight REAL NOT NULL, + StochasticSoilModelCollectionSourcePath TEXT NULL COLLATE NOCASE, + SurfaceLineCollectionSourcePath TEXT NULL COLLATE NOCASE, + ScenarioConfigurationType TINYINT (1) NOT NULL, -- Enum: SemiProbabilistic = 1 Probabilistic = 2 PerFailureMechanismSection = 3 + CONSTRAINT FK_PipingFailureMechanismMetaEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE ProbabilisticPipingCalculationEntity +( + ProbabilisticPipingCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + CalculationGroupEntityId INTEGER NOT NULL, + SurfaceLineEntityId INTEGER NULL, + PipingStochasticSoilProfileEntityId INTEGER NULL, + HydraulicLocationEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NULL, + Comments TEXT NULL COLLATE NOCASE, + EntryPointL REAL NULL, + ExitPointL REAL NULL, + PhreaticLevelExitMean REAL NULL, + PhreaticLevelExitStandardDeviation REAL NULL, + DampingFactorExitMean REAL NULL, + DampingFactorExitStandardDeviation REAL NULL, + RelevantForScenario TINYINT (1) NOT NULL, -- true or false + ScenarioContribution REAL NOT NULL, + ShouldProfileSpecificIllustrationPointsBeCalculated TINYINT (1) NOT NULL, -- true or false + ShouldSectionSpecificIllustrationPointsBeCalculated TINYINT (1) NOT NULL, -- true or false + CONSTRAINT FK_ProbabilisticPipingCalculationEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_ProbabilisticPipingCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_ProbabilisticPipingCalculationEntity_PipingStochasticSoilProfileEntity FOREIGN KEY (PipingStochasticSoilProfileEntityId) REFERENCES PipingStochasticSoilProfileEntity (PipingStochasticSoilProfileEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_ProbabilisticPipingCalculationEntity_SurfaceLineEntity FOREIGN KEY (SurfaceLineEntityId) REFERENCES SurfaceLineEntity (SurfaceLineEntityId) ON DELETE Set Null ON UPDATE Cascade + ) +; + +CREATE TABLE ProbabilisticPipingCalculationOutputEntity +( + ProbabilisticPipingCalculationOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + ProbabilisticPipingCalculationEntityId INTEGER NOT NULL, + ProfileSpecificGeneralResultFaultTreeIllustrationPointEntityId INTEGER NULL, + SectionSpecificGeneralResultFaultTreeIllustrationPointEntityId INTEGER NULL, + ProfileSpecificGeneralResultSubMechanismIllustrationPointEntityId INTEGER NULL, + SectionSpecificGeneralResultSubMechanismIllustrationPointEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + ProfileSpecificReliability REAL NULL, + SectionSpecificReliability REAL NULL, + CONSTRAINT FK_ProbabilisticPipingCalculationOutputEntity_ProbabilisticPipingCalculationEntity FOREIGN KEY (ProbabilisticPipingCalculationEntityId) REFERENCES ProbabilisticPipingCalculationEntity (ProbabilisticPipingCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_ProbabilisticPipingCalculationOutputEntity_Profile_GeneralResultFaultTreeIllustrationPointEntity FOREIGN KEY (ProfileSpecificGeneralResultFaultTreeIllustrationPointEntityId) REFERENCES GeneralResultFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_ProbabilisticPipingCalculationOutputEntity_Profile_GeneralResultSubMechanismIllustrationPointEntity FOREIGN KEY (ProfileSpecificGeneralResultSubMechanismIllustrationPointEntityId) REFERENCES GeneralResultSubMechanismIllustrationPointEntity (GeneralResultSubMechanismIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_ProbabilisticPipingCalculationOutputEntity_Section_GeneralResultFaultTreeIllustrationPointEntity FOREIGN KEY (SectionSpecificGeneralResultFaultTreeIllustrationPointEntityId) REFERENCES GeneralResultFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_ProbabilisticPipingCalculationOutputEntity_Section_GeneralResultSubMechanismIllustrationPointEntity FOREIGN KEY (SectionSpecificGeneralResultSubMechanismIllustrationPointEntityId) REFERENCES GeneralResultSubMechanismIllustrationPointEntity (GeneralResultSubMechanismIllustrationPointEntityId) ON DELETE No Action ON UPDATE No Action, + CONSTRAINT U_ProbabilisticPipingCalculationEntity UNIQUE (ProbabilisticPipingCalculationEntityId) + ) +; + +CREATE TABLE SemiProbabilisticPipingCalculationOutputEntity +( + SemiProbabilisticPipingCalculationOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + SemiProbabilisticPipingCalculationEntityId INTEGER NOT NULL, + 'Order' INT (4) NOT NULL, + HeaveFactorOfSafety REAL NULL, + UpliftFactorOfSafety REAL NULL, + SellmeijerFactorOfSafety REAL NULL, + UpliftEffectiveStress REAL NULL, + HeaveGradient REAL NULL, + SellmeijerCreepCoefficient REAL NULL, + SellmeijerCriticalFall REAL NULL, + SellmeijerReducedFall REAL NULL, + CONSTRAINT FK_SemiProbabilisticPipingCalculationOutputEntity_SemiProbabilisticPipingCalculationEntity FOREIGN KEY (SemiProbabilisticPipingCalculationEntityId) REFERENCES SemiProbabilisticPipingCalculationEntity (SemiProbabilisticPipingCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_SemiProbabilisticPipingCalculationEntity UNIQUE (SemiProbabilisticPipingCalculationEntityId) + ) +; + +CREATE TABLE SpecificFailureMechanismEntity +( + SpecificFailureMechanismEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + AssessmentSectionEntityId INTEGER NOT NULL, + Name VARCHAR (260) NULL, + Code VARCHAR (260) NULL, + 'Order' INT (4) NOT NULL, + InAssembly TINYINT (1) NOT NULL, -- true or false + FailureMechanismSectionCollectionSourcePath TEXT NULL COLLATE NOCASE, + InAssemblyInputComments TEXT NULL COLLATE NOCASE, + InAssemblyOutputComments TEXT NULL COLLATE NOCASE, + NotInAssemblyComments TEXT NULL COLLATE NOCASE, + FailureMechanismAssemblyResultProbabilityResultType TINYINT (1) NOT NULL, -- Enum: None = 1, P1 = 2, P2 = 3, Manual = 4 + FailureMechanismAssemblyResultManualFailureMechanismAssemblyProbability REAL NULL, + CONSTRAINT FK_SpecificFailureMechanismEntity_AssessmentSectionEntity FOREIGN KEY (AssessmentSectionEntityId) REFERENCES AssessmentSectionEntity (AssessmentSectionEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE SpecificFailureMechanismFailureMechanismSectionEntity +( + SpecificFailureMechanismEntityId INTEGER NOT NULL, + FailureMechanismSectionEntityId INTEGER NOT NULL, + CONSTRAINT PK_SpecificFailureMechanismFailureMechanismSectionEntity PRIMARY KEY (SpecificFailureMechanismEntityId,FailureMechanismSectionEntityId), + CONSTRAINT FK_SpecificFailureMechanismFailureMechanismSectionEntity_FailureMechanismSectionEntity FOREIGN KEY (FailureMechanismSectionEntityId) REFERENCES FailureMechanismSectionEntity (FailureMechanismSectionEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_SpecificFailureMechanismFailureMechanismSectionEntity_SpecificFailureMechanismEntity FOREIGN KEY (SpecificFailureMechanismEntityId) REFERENCES SpecificFailureMechanismEntity (SpecificFailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE StabilityPointStructureEntity +( + StabilityPointStructureEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NOT NULL, + Id VARCHAR (260) NOT NULL, + X REAL NULL, + Y REAL NULL, + StructureNormalOrientation REAL NULL, + StorageStructureAreaMean REAL NULL, + StorageStructureAreaCoefficientOfVariation REAL NULL, + AllowedLevelIncreaseStorageMean REAL NULL, + AllowedLevelIncreaseStorageStandardDeviation REAL NULL, + WidthFlowAperturesMean REAL NULL, + WidthFlowAperturesStandardDeviation REAL NULL, + InsideWaterLevelMean REAL NULL, + InsideWaterLevelStandardDeviation REAL NULL, + ThresholdHeightOpenWeirMean REAL NULL, + ThresholdHeightOpenWeirStandardDeviation REAL NULL, + CriticalOvertoppingDischargeMean REAL NULL, + CriticalOvertoppingDischargeCoefficientOfVariation REAL NULL, + FlowWidthAtBottomProtectionMean REAL NULL, + FlowWidthAtBottomProtectionStandardDeviation REAL NULL, + ConstructiveStrengthLinearLoadModelMean REAL NULL, + ConstructiveStrengthLinearLoadModelCoefficientOfVariation REAL NULL, + ConstructiveStrengthQuadraticLoadModelMean REAL NULL, + ConstructiveStrengthQuadraticLoadModelCoefficientOfVariation REAL NULL, + BankWidthMean REAL NULL, + BankWidthStandardDeviation REAL NULL, + InsideWaterLevelFailureConstructionMean REAL NULL, + InsideWaterLevelFailureConstructionStandardDeviation REAL NULL, + EvaluationLevel REAL NULL, + LevelCrestStructureMean REAL NULL, + LevelCrestStructureStandardDeviation REAL NULL, + VerticalDistance REAL NULL, + FailureProbabilityRepairClosure REAL NULL, + FailureCollisionEnergyMean REAL NULL, + FailureCollisionEnergyCoefficientOfVariation REAL NULL, + ShipMassMean REAL NULL, + ShipMassCoefficientOfVariation REAL NULL, + ShipVelocityMean REAL NULL, + ShipVelocityCoefficientOfVariation REAL NULL, + LevellingCount INT (4) NOT NULL, + ProbabilityCollisionSecondaryStructure REAL NULL, + FlowVelocityStructureClosableMean REAL NULL, + StabilityLinearLoadModelMean REAL NULL, + StabilityLinearLoadModelCoefficientOfVariation REAL NULL, + StabilityQuadraticLoadModelMean REAL NULL, + StabilityQuadraticLoadModelCoefficientOfVariation REAL NULL, + AreaFlowAperturesMean REAL NULL, + AreaFlowAperturesStandardDeviation REAL NULL, + InflowModelType TINYINT (1) NOT NULL, -- Enum: 1 = LowSill, 2 = FloodedCulvert + CONSTRAINT FK_StabilityPointStructureEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_Id_FailureMechanismEntityId UNIQUE (FailureMechanismEntityId,Id) + ) +; + +CREATE TABLE StabilityPointStructuresCalculationEntity +( + StabilityPointStructuresCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + CalculationGroupEntityId INTEGER NOT NULL, + ForeshoreProfileEntityId INTEGER NULL, + HydraulicLocationEntityId INTEGER NULL, + StabilityPointStructureEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NULL, + Comments TEXT NULL COLLATE NOCASE, + UseBreakWater TINYINT (1) NOT NULL, -- true or false + BreakWaterType TINYINT (1) NOT NULL, -- Enum: 1 = Wall, 2 = Caisson, 3 = Dam + BreakWaterHeight REAL NULL, + UseForeshore TINYINT (1) NOT NULL, -- true or false + StructureNormalOrientation REAL NULL, + StorageStructureAreaMean REAL NULL, + StorageStructureAreaCoefficientOfVariation REAL NULL, + AllowedLevelIncreaseStorageMean REAL NULL, + AllowedLevelIncreaseStorageStandardDeviation REAL NULL, + WidthFlowAperturesMean REAL NULL, + WidthFlowAperturesStandardDeviation REAL NULL, + InsideWaterLevelMean REAL NULL, + InsideWaterLevelStandardDeviation REAL NULL, + ThresholdHeightOpenWeirMean REAL NULL, + ThresholdHeightOpenWeirStandardDeviation REAL NULL, + CriticalOvertoppingDischargeMean REAL NULL, + CriticalOvertoppingDischargeCoefficientOfVariation REAL NULL, + FlowWidthAtBottomProtectionMean REAL NULL, + FlowWidthAtBottomProtectionStandardDeviation REAL NULL, + ConstructiveStrengthLinearLoadModelMean REAL NULL, + ConstructiveStrengthLinearLoadModelCoefficientOfVariation REAL NULL, + ConstructiveStrengthQuadraticLoadModelMean REAL NULL, + ConstructiveStrengthQuadraticLoadModelCoefficientOfVariation REAL NULL, + BankWidthMean REAL NULL, + BankWidthStandardDeviation REAL NULL, + InsideWaterLevelFailureConstructionMean REAL NULL, + InsideWaterLevelFailureConstructionStandardDeviation REAL NULL, + EvaluationLevel REAL NULL, + LevelCrestStructureMean REAL NULL, + LevelCrestStructureStandardDeviation REAL NULL, + VerticalDistance REAL NULL, + FailureProbabilityRepairClosure REAL NOT NULL, + FailureCollisionEnergyMean REAL NULL, + FailureCollisionEnergyCoefficientOfVariation REAL NULL, + ShipMassMean REAL NULL, + ShipMassCoefficientOfVariation REAL NULL, + ShipVelocityMean REAL NULL, + ShipVelocityCoefficientOfVariation REAL NULL, + LevellingCount INT (4) NOT NULL, + ProbabilityCollisionSecondaryStructure REAL NOT NULL, + FlowVelocityStructureClosableMean REAL NULL, + StabilityLinearLoadModelMean REAL NULL, + StabilityLinearLoadModelCoefficientOfVariation REAL NULL, + StabilityQuadraticLoadModelMean REAL NULL, + StabilityQuadraticLoadModelCoefficientOfVariation REAL NULL, + AreaFlowAperturesMean REAL NULL, + AreaFlowAperturesStandardDeviation REAL NULL, + InflowModelType TINYINT (1) NOT NULL, -- Enum: 1 = VerticalWall, 2 = LowSill, 3 = FloodedCulvert + LoadSchematizationType TINYINT (1) NOT NULL, -- Enum: 1 = Linear, 2 = Quadratic + VolumicWeightWater REAL NULL, + StormDurationMean REAL NULL, + FactorStormDurationOpenStructure REAL NULL, + DrainCoefficientMean REAL NULL, + DrainCoefficientStandardDeviation REAL NULL, + FailureProbabilityStructureWithErosion REAL NOT NULL, + ShouldIllustrationPointsBeCalculated TINYINT (1) NOT NULL, -- true or false + RelevantForScenario TINYINT (1) NOT NULL, -- true or false + ScenarioContribution REAL NOT NULL, + CONSTRAINT FK_StabilityPointStructuresCalculationEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_StabilityPointStructuresCalculationEntity_ForeshoreProfileEntity FOREIGN KEY (ForeshoreProfileEntityId) REFERENCES ForeshoreProfileEntity (ForeshoreProfileEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_StabilityPointStructuresCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_StabilityPointStructuresCalculationEntity_StabilityPointStructureEntity FOREIGN KEY (StabilityPointStructureEntityId) REFERENCES StabilityPointStructureEntity (StabilityPointStructureEntityId) ON DELETE Set Null ON UPDATE Cascade + ) +; + +CREATE TABLE StabilityPointStructuresFailureMechanismMetaEntity +( + StabilityPointStructuresFailureMechanismMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + ForeshoreProfileCollectionSourcePath TEXT NULL COLLATE NOCASE, + StabilityPointStructureCollectionSourcePath TEXT NULL COLLATE NOCASE, + CONSTRAINT FK_StrengthStabilityPointConstructionFailureMechanismMetaEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE StabilityPointStructuresOutputEntity +( + StabilityPointStructuresOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + StabilityPointStructuresCalculationEntityId INTEGER NOT NULL, + GeneralResultFaultTreeIllustrationPointEntityId INTEGER NULL, + Reliability REAL NULL, + CONSTRAINT FK_StabilityPointStructuresOutputEntity_GeneralResultFaultTreeIllustrationPointEntity FOREIGN KEY (GeneralResultFaultTreeIllustrationPointEntityId) REFERENCES GeneralResultFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_StabilityPointStructuresOutputEntity_StabilityPointStructuresCalculationEntity FOREIGN KEY (StabilityPointStructuresCalculationEntityId) REFERENCES StabilityPointStructuresCalculationEntity (StabilityPointStructuresCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT U_StabilityPointStructuresCalculationEntity UNIQUE (StabilityPointStructuresCalculationEntityId) +) +; + +CREATE TABLE StabilityStoneCoverFailureMechanismMetaEntity +( + StabilityStoneCoverFailureMechanismMetaEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FailureMechanismEntityId INTEGER NOT NULL, + ForeshoreProfileCollectionSourcePath TEXT NULL COLLATE NOCASE, + CONSTRAINT FK_StabilityStoneCoverFailureMechanismMetaEntity_FailureMechanismEntity FOREIGN KEY (FailureMechanismEntityId) REFERENCES FailureMechanismEntity (FailureMechanismEntityId) ON DELETE Cascade ON UPDATE Cascade +) +; + +CREATE TABLE StabilityStoneCoverWaveConditionsCalculationEntity +( + StabilityStoneCoverWaveConditionsCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + CalculationGroupEntityId INTEGER NOT NULL, + ForeshoreProfileEntityId INTEGER NULL, + HydraulicLocationEntityId INTEGER NULL, + HydraulicLocationCalculationForTargetProbabilityCollectionEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NULL, + Comments TEXT NULL COLLATE NOCASE, + UseBreakWater TINYINT (1) NOT NULL, -- true or false + BreakWaterType TINYINT (1) NOT NULL, -- Enum: 1 = Wall, 2 = Caisson, 3 = Dam + BreakWaterHeight REAL NULL, + UseForeshore TINYINT (1) NOT NULL, -- true or false + Orientation REAL NULL, + UpperBoundaryRevetment REAL NULL, + LowerBoundaryRevetment REAL NULL, + UpperBoundaryWaterLevels REAL NULL, + LowerBoundaryWaterLevels REAL NULL, + StepSize REAL NOT NULL, + CalculationType TINYINT (1) NOT NULL, -- Enum: 1 = Blocks, 2 = Columns, 3 = Both + WaterLevelType TINYINT (1) NOT NULL, -- Enum: 1 = None, 2 = MaximumAllowableFloodingProbability, 3 = SignalFloodingProbability, 4 = UserDefinedTargetProbability + CONSTRAINT FK_StabilityStoneCoverWaveConditionsCalculationEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_StabilityStoneCoverWaveConditionsCalculationEntity_ForeshoreProfileEntity FOREIGN KEY (ForeshoreProfileEntityId) REFERENCES ForeshoreProfileEntity (ForeshoreProfileEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_StabilityStoneCoverWaveConditionsCalculationEntity_HydraulicLocationCalculationForTargetProbabilityCollectionEntity FOREIGN KEY (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId) REFERENCES HydraulicLocationCalculationForTargetProbabilityCollectionEntity (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_StabilityStoneCoverWaveConditionsCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Set Null ON UPDATE Cascade + ) +; + +CREATE TABLE StabilityStoneCoverWaveConditionsOutputEntity +( + StabilityStoneCoverWaveConditionsOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + StabilityStoneCoverWaveConditionsCalculationEntityId INTEGER NOT NULL, + 'Order' INT (4) NOT NULL, + OutputType TINYINT (1) NOT NULL, -- Enum: 1 = Column, 2 = Block + WaterLevel REAL NULL, + WaveHeight REAL NULL, + WavePeakPeriod REAL NULL, + WaveAngle REAL NULL, + WaveDirection REAL NULL, + TargetProbability REAL NULL, + TargetReliability REAL NULL, + CalculatedProbability REAL NULL, + CalculatedReliability REAL NULL, + CalculationConvergence TINYINT (1) NOT NULL, -- Enum: 1 = NotCalculated, 2 = CalculationNotConverged, 3 = CalculationConverged + CONSTRAINT FK_StabilityStoneCoverWaveConditionsOutputEntity_StabilityStoneCoverWaveConditionsCalculationEntity FOREIGN KEY (StabilityStoneCoverWaveConditionsCalculationEntityId) REFERENCES StabilityStoneCoverWaveConditionsCalculationEntity (StabilityStoneCoverWaveConditionsCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE StochastEntity +( + StochastEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + Name TEXT NOT NULL COLLATE NOCASE, + Duration REAL NOT NULL, + Alpha REAL NOT NULL, + 'Order' INT (4) NOT NULL + ) +; + +CREATE TABLE SubMechanismIllustrationPointEntity +( + SubMechanismIllustrationPointEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + Name TEXT NOT NULL COLLATE NOCASE, + Beta REAL NOT NULL, + 'Order' INT (4) NOT NULL + ) +; + +CREATE TABLE SubMechanismIllustrationPointStochastEntity +( + SubMechanismIllustrationPointStochastEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + SubMechanismIllustrationPointEntityId INTEGER NOT NULL, + Name TEXT NOT NULL COLLATE NOCASE, + Unit TEXT NOT NULL COLLATE NOCASE, + Duration REAL NOT NULL, + Alpha REAL NOT NULL, + Realization REAL NOT NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_SubMechanismIllustrationPointStochast_SubMechanismIllustrationPointEntity FOREIGN KEY (SubMechanismIllustrationPointEntityId) REFERENCES SubMechanismIllustrationPointEntity (SubMechanismIllustrationPointEntityId) ON DELETE No Action ON UPDATE No Action + ) +; + +CREATE TABLE TopLevelFaultTreeIllustrationPointEntity +( + TopLevelFaultTreeIllustrationPointEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + FaultTreeIllustrationPointEntityId INTEGER NOT NULL, + GeneralResultFaultTreeIllustrationPointEntityId INTEGER NOT NULL, + ClosingSituation TEXT NOT NULL COLLATE NOCASE, + WindDirectionName TEXT NOT NULL COLLATE NOCASE, + WindDirectionAngle REAL NOT NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_TopLevelFaultTreeIllustrationPointEntity_FaultTreeIllustrationPointEntity FOREIGN KEY (FaultTreeIllustrationPointEntityId) REFERENCES FaultTreeIllustrationPointEntity (FaultTreeIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_TopLevelFaultTreeIllustrationPointEntity_GeneralResultFaultTreeIllustrationPointEntity FOREIGN KEY (GeneralResultFaultTreeIllustrationPointEntityId) REFERENCES GeneralResultFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE TopLevelSubMechanismIllustrationPointEntity +( + TopLevelSubMechanismIllustrationPointEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + GeneralResultSubMechanismIllustrationPointEntityId INTEGER NOT NULL, + SubMechanismIllustrationPointEntityId INTEGER NOT NULL, + ClosingSituation TEXT NOT NULL COLLATE NOCASE, + WindDirectionName TEXT NOT NULL COLLATE NOCASE, + WindDirectionAngle REAL NOT NULL, + 'Order' INT (4) NOT NULL, + CONSTRAINT FK_TopLevelSubMechanismIllustrationPointEntity_GeneralResultSubMechanismIllustrationPointEntity FOREIGN KEY (GeneralResultSubMechanismIllustrationPointEntityId) REFERENCES GeneralResultSubMechanismIllustrationPointEntity (GeneralResultSubMechanismIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_TopLevelSubMechanismIllustrationPointEntity_SubMechanismIllustrationPointEntity FOREIGN KEY (SubMechanismIllustrationPointEntityId) REFERENCES SubMechanismIllustrationPointEntity (SubMechanismIllustrationPointEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +CREATE TABLE WaveImpactAsphaltCoverWaveConditionsCalculationEntity +( + WaveImpactAsphaltCoverWaveConditionsCalculationEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + CalculationGroupEntityId INTEGER NOT NULL, + ForeshoreProfileEntityId INTEGER NULL, + HydraulicLocationEntityId INTEGER NULL, + HydraulicLocationCalculationForTargetProbabilityCollectionEntityId INTEGER NULL, + 'Order' INT (4) NOT NULL, + Name VARCHAR (260) NULL, + Comments TEXT NULL COLLATE NOCASE, + UseBreakWater TINYINT (1) NOT NULL, -- true or false + BreakWaterType TINYINT (1) NOT NULL, -- Enum: 1 = Wall, 2 = Caisson, 3 = Dam + BreakWaterHeight REAL NULL, + UseForeshore TINYINT (1) NOT NULL, -- true or false + Orientation REAL NULL, + UpperBoundaryRevetment REAL NULL, + LowerBoundaryRevetment REAL NULL, + UpperBoundaryWaterLevels REAL NULL, + LowerBoundaryWaterLevels REAL NULL, + StepSize REAL NOT NULL, + WaterLevelType TINYINT (1) NOT NULL, -- Enum: 1 = None, 2 = MaximumAllowableFloodingProbability, 3 = SignalFloodingProbability, 4 = UserDefinedTargetProbability + CONSTRAINT FK_WaveImpactAsphaltCoverWaveConditionsCalculationEntity_CalculationGroupEntity FOREIGN KEY (CalculationGroupEntityId) REFERENCES CalculationGroupEntity (CalculationGroupEntityId) ON DELETE Cascade ON UPDATE Cascade, + CONSTRAINT FK_WaveImpactAsphaltCoverWaveConditionsCalculationEntity_ForeshoreProfileEntity FOREIGN KEY (ForeshoreProfileEntityId) REFERENCES ForeshoreProfileEntity (ForeshoreProfileEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_WaveImpactAsphaltCoverWaveConditionsCalculationEntity_HydraulicLocationCalculationForTargetProbabilityCollectionEntity FOREIGN KEY (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId) REFERENCES HydraulicLocationCalculationForTargetProbabilityCollectionEntity (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId) ON DELETE Set Null ON UPDATE Cascade, + CONSTRAINT FK_WaveImpactAsphaltCoverWaveConditionsCalculationEntity_HydraulicLocationEntity FOREIGN KEY (HydraulicLocationEntityId) REFERENCES HydraulicLocationEntity (HydraulicLocationEntityId) ON DELETE Set Null ON UPDATE Cascade + ) +; + +CREATE TABLE WaveImpactAsphaltCoverWaveConditionsOutputEntity +( + WaveImpactAsphaltCoverWaveConditionsOutputEntityId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + WaveImpactAsphaltCoverWaveConditionsCalculationEntityId INTEGER NOT NULL, + 'Order' INT (4) NOT NULL, + WaterLevel REAL NULL, + WaveHeight REAL NULL, + WavePeakPeriod REAL NULL, + WaveAngle REAL NULL, + WaveDirection REAL NULL, + TargetProbability REAL NULL, + TargetReliability REAL NULL, + CalculatedProbability REAL NULL, + CalculatedReliability REAL NULL, + CalculationConvergence TINYINT (1) NOT NULL, -- Enum: 1 = NotCalculated, 2 = CalculationNotConverged, 3 = CalculationConverged + CONSTRAINT FK_WaveImpactAsphaltCoverWaveConditionsOutputEntity_WaveImpactAsphaltCoverWaveConditionsCalculationEntity FOREIGN KEY (WaveImpactAsphaltCoverWaveConditionsCalculationEntityId) REFERENCES WaveImpactAsphaltCoverWaveConditionsCalculationEntity (WaveImpactAsphaltCoverWaveConditionsCalculationEntityId) ON DELETE Cascade ON UPDATE Cascade + ) +; + +/* Create Indexes and Triggers */ + +CREATE INDEX IXFK_AssessmentSectionEntity_HydraulicLocationCalculationCollectionEntity1 + ON AssessmentSectionEntity (HydraulicLocationCalculationCollectionEntity1Id ASC) +; + +CREATE INDEX IXFK_AssessmentSectionEntity_HydraulicLocationCalculationCollectionEntity2 + ON AssessmentSectionEntity (HydraulicLocationCalculationCollectionEntity2Id ASC) +; + +CREATE INDEX IXFK_AssessmentSectionEntity_ProjectEntity + ON AssessmentSectionEntity (ProjectEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteAssessmentSectionEntity_RemoveHydraulicLocationCalculationCollectionEntities] + AFTER DELETE +ON AssessmentSectionEntity + FOR EACH ROW +BEGIN +DELETE +FROM HydraulicLocationCalculationCollectionEntity +WHERE HydraulicLocationCalculationCollectionEntityId IS OLD.HydraulicLocationCalculationCollectionEntity1Id + OR HydraulicLocationCalculationCollectionEntityId IS OLD.HydraulicLocationCalculationCollectionEntity2Id; +END; +; + +CREATE INDEX IXFK_FailureMechanismEntity_AssessmentSectionEntity + ON FailureMechanismEntity (AssessmentSectionEntityId ASC) +; + +CREATE INDEX IXFK_FailureMechanismEntity_CalculationGroupEntity + ON FailureMechanismEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_ClosingStructuresFailureMechanismMetaEntity_FailureMechanismEntity + ON ClosingStructuresFailureMechanismMetaEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_CalculationGroupEntity_CalculationGroupEntity + ON CalculationGroupEntity (ParentCalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_HydraulicLocationEntity_HydraulicBoundaryDatabaseEntity + ON HydraulicLocationEntity (HydraulicBoundaryDatabaseEntityId ASC) +; + +CREATE INDEX IXFK_SemiProbabilisticPipingCalculationEntity_PipingStochasticSoilProfileEntity + ON SemiProbabilisticPipingCalculationEntity (PipingStochasticSoilProfileEntityId ASC) +; + +CREATE INDEX IXFK_SemiProbabilisticPipingCalculationEntity_SurfaceLineEntity + ON SemiProbabilisticPipingCalculationEntity (SurfaceLineEntityId ASC) +; + +CREATE INDEX IXFK_SemiProbabilisticPipingCalculationEntity_HydraulicLocationEntity + ON SemiProbabilisticPipingCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_SemiProbabilisticPipingCalculationEntity_CalculationGroupEntity + ON SemiProbabilisticPipingCalculationEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionInwardsFailureMechanismMetaEntity_FailureMechanismEntity + ON GrassCoverErosionInwardsFailureMechanismMetaEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionInwardsCalculationEntity_CalculationGroupEntity + ON GrassCoverErosionInwardsCalculationEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionInwardsCalculationEntity_DikeProfileEntity + ON GrassCoverErosionInwardsCalculationEntity (DikeProfileEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionInwardsCalculationEntity_HydraulicLocationEntity + ON GrassCoverErosionInwardsCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionOutwardsFailureMechanismMetaEntity_FailureMechanismEntity + ON GrassCoverErosionOutwardsFailureMechanismMetaEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_PipingStochasticSoilProfileEntity_SoilProfileEntity + ON PipingStochasticSoilProfileEntity (PipingSoilProfileEntityId ASC) +; + +CREATE INDEX IXFK_PipingStochasticSoilProfileEntity_StochasticSoilModelEntity + ON PipingStochasticSoilProfileEntity (StochasticSoilModelEntityId ASC) +; + +CREATE INDEX IXFK_StochasticSoilModelEntity_FailureMechanismEntity + ON StochasticSoilModelEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_PipingFailureMechanismSectionConfigurationEntity_FailureMechanismSectionEntity + ON PipingFailureMechanismSectionConfigurationEntity (FailureMechanismSectionEntityId ASC) +; + +CREATE INDEX IXFK_SurfaceLineEntity_FailureMechanismEntity + ON SurfaceLineEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_SurfaceLinePointEntity_SurfaceLineEntity + ON PipingCharacteristicPointEntity (SurfaceLineEntityId ASC) +; + +CREATE INDEX IXFK_WaveImpactAsphaltCoverFailureMechanismMetaEntity_FailureMechanismEntity + ON WaveImpactAsphaltCoverFailureMechanismMetaEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_AdoptableFailureMechanismSectionResultEntity_FailureMechanismSectionEntity + ON AdoptableFailureMechanismSectionResultEntity (FailureMechanismSectionEntityId ASC) +; + +CREATE INDEX IXFK_BackgroundDataEntity_AssessmentSectionEntity + ON BackgroundDataEntity (AssessmentSectionEntityId ASC) +; + +CREATE INDEX IXFK_BackgroundDataMetaEntity_BackgroundDataEntity + ON BackgroundDataMetaEntity (BackgroundDataEntityId ASC) +; + +CREATE INDEX IXFK_ClosingStructureEntity_FailureMechanismEntity + ON ClosingStructureEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_ClosingStructuresCalculationEntity_CalculationGroupEntity + ON ClosingStructuresCalculationEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_ClosingStructuresCalculationEntity_ClosingStructureEntity + ON ClosingStructuresCalculationEntity (ClosingStructureEntityId ASC) +; + +CREATE INDEX IXFK_ClosingStructuresCalculationEntity_ForeshoreProfileEntity + ON ClosingStructuresCalculationEntity (ForeshoreProfileEntityId ASC) +; + +CREATE INDEX IXFK_ClosingStructuresCalculationEntity_HydraulicLocationEntity + ON ClosingStructuresCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_ClosingStructuresOutputEntity_ClosingStructuresCalculationEntity + ON ClosingStructuresOutputEntity (ClosingStructuresCalculationEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteClosingStructuresOutputEntity_RemoveGeneralResultFaultTreeIllustrationPointEntity] + AFTER DELETE +ON ClosingStructuresOutputEntity + FOR EACH ROW +BEGIN +DELETE +FROM GeneralResultFaultTreeIllustrationPointEntity +WHERE OLD.GeneralResultFaultTreeIllustrationPointEntityId IS NOT NULL + AND GeneralResultFaultTreeIllustrationPointEntityId IS OLD.GeneralResultFaultTreeIllustrationPointEntityId; +END; +; + +CREATE INDEX IXFK_DikeProfileEntity_FailureMechanismEntity + ON DikeProfileEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_DuneErosionFailureMechanismMetaEntity_FailureMechanismEntity + ON DuneErosionFailureMechanismMetaEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_DuneLocationCalculationEntity_DuneLocationCalculationCollectionEntity + ON DuneLocationCalculationEntity (DuneLocationCalculationForTargetProbabilityCollectionEntityId ASC) +; + +CREATE INDEX IXFK_DuneLocationCalculationEntity_DuneLocationEntity + ON DuneLocationCalculationEntity (DuneLocationEntityId ASC) +; + +CREATE INDEX IXFK_DuneLocationCalculationForTargetProbabilityCollectionEntity_DuneErosionFailureMechanismMetaEntity + ON DuneLocationCalculationForTargetProbabilityCollectionEntity (DuneErosionFailureMechanismMetaEntityId ASC) +; + +CREATE INDEX IXFK_DuneLocationCalculationOutputEntity_DuneLocationCalculationEntity + ON DuneLocationCalculationOutputEntity (DuneLocationCalculationEntityId ASC) +; + +CREATE INDEX IXFK_DuneLocationEntity_FailureMechanismEntity + ON DuneLocationEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_DuneLocationEntity_HydraulicLocationEntity + ON DuneLocationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_FailureMechanismFailureMechanismSectionEntity_FailureMechanismEntity + ON FailureMechanismFailureMechanismSectionEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_FailureMechanismFailureMechanismSectionEntity_FailureMechanismSectionEntity + ON FailureMechanismFailureMechanismSectionEntity (FailureMechanismSectionEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteFailureMechanismFailureMechanismSectionEntity_RemoveFailureMechanismSectionEntityId] + AFTER DELETE +ON FailureMechanismFailureMechanismSectionEntity + FOR EACH ROW +BEGIN +DELETE +FROM FailureMechanismSectionEntity +WHERE OLD.FailureMechanismSectionEntityId IS NOT NULL + AND FailureMechanismSectionEntityId IS OLD.FailureMechanismSectionEntityId; +END; +; + +CREATE INDEX IXFK_FaultTreeIllustrationPoint_FaultTreeIllustrationPoint + ON FaultTreeIllustrationPointEntity (ParentFaultTreeIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_FaultTreeIllustrationPointStochastEntity_FaultTreeIllustrationPoint + ON FaultTreeIllustrationPointStochastEntity (FaultTreeIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_FaultTreeIllustrationPointStochastEntity_StochastEntity + ON FaultTreeIllustrationPointStochastEntity (StochastEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteFaultTreeIllustrationPointStochastEntity_RemoveStochastEntity] + AFTER DELETE +ON FaultTreeIllustrationPointStochastEntity + FOR EACH ROW +BEGIN +DELETE +FROM StochastEntity +WHERE OLD.StochastEntityId IS NOT NULL + AND StochastEntityId IS OLD.StochastEntityId; +END; +; + +CREATE INDEX IXFK_FaultTreeIllustrationPointEntity_FaultTreeIllustrationPointEntity + ON FaultTreeSubmechanismIllustrationPointEntity (FaultTreeIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_FaultTreeIllustrationPointEntity_SubMechanismIllustrationPointEntity + ON FaultTreeSubmechanismIllustrationPointEntity (SubMechanismIllustrationPointEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteFaultTreeSubmechanismIllustrationPointEntity_RemoveSubmechanismIllustrationPointEntity] + AFTER DELETE +ON FaultTreeSubmechanismIllustrationPointEntity + FOR EACH ROW +BEGIN +DELETE +FROM SubmechanismIllustrationPointEntity +WHERE OLD.SubmechanismIllustrationPointEntityId IS NOT NULL + AND SubmechanismIllustrationPointEntityId IS OLD.SubmechanismIllustrationPointEntityId; +END; +; + +CREATE INDEX IXFK_ForeshoreProfileEntity_FailureMechanismEntity + ON ForeshoreProfileEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_GeneralResultFaultTreeIllustrationPointStochastEntity_GeneralResultFaultTreeIllustrationPointEntity + ON GeneralResultFaultTreeIllustrationPointStochastEntity (GeneralResultFaultTreeIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_GeneralResultFaultTreeIllustrationPointStochastEntity_StochastEntity + ON GeneralResultFaultTreeIllustrationPointStochastEntity (StochastEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteGeneralResultFaultTreeIllustrationPointStochastEntity_RemoveStochastEntity] + AFTER DELETE +ON GeneralResultFaultTreeIllustrationPointStochastEntity + FOR EACH ROW +BEGIN +DELETE +FROM StochastEntity +WHERE OLD.StochastEntityId IS NOT NULL + AND StochastEntityId IS OLD.StochastEntityId; +END; +; + +CREATE INDEX IXFK_GeneralResultSubMechanismIllustrationPointStochastEntity_GeneralResultSubMechanismIllustrationPointEntity + ON GeneralResultSubMechanismIllustrationPointStochastEntity (GeneralResultSubMechanismIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_GeneralResultSubMechanismIllustrationPointStochastEntity_StochastEntity + ON GeneralResultSubMechanismIllustrationPointStochastEntity (StochastEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteGeneralResultSubMechanismIllustrationPointStochastEntity_RemoveStochastEntity] + AFTER DELETE +ON GeneralResultSubMechanismIllustrationPointStochastEntity + FOR EACH ROW +BEGIN +DELETE +FROM StochastEntity +WHERE OLD.StochastEntityId IS NOT NULL + AND StochastEntityId IS OLD.StochastEntityId; +END; +; + +CREATE INDEX IXFK_GrassCoverErosionInwardsDikeHeightOutputEntity_GeneralResultFaultTreeIllustrationPointEntity + ON GrassCoverErosionInwardsDikeHeightOutputEntity (GeneralResultFaultTreeIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionInwardsDikeHeightOutputEntity_GrassCoverErosionInwardsOutputEntity + ON GrassCoverErosionInwardsDikeHeightOutputEntity (GrassCoverErosionInwardsOutputEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteGrassCoverErosionInwardsDikeHeightOutputEntity_RemoveGeneralResultFaultTreeIllustrationPointEntity] + AFTER DELETE +ON GrassCoverErosionInwardsDikeHeightOutputEntity + FOR EACH ROW +BEGIN +DELETE +FROM GeneralResultFaultTreeIllustrationPointEntity +WHERE OLD.GeneralResultFaultTreeIllustrationPointEntityId IS NOT NULL + AND GeneralResultFaultTreeIllustrationPointEntityId IS OLD.GeneralResultFaultTreeIllustrationPointEntityId; +END; +; + +CREATE INDEX IXFK_GrassCoverErosionInwardsOutputEntity_GeneralResultFaultTreeIllustrationPointEntity + ON GrassCoverErosionInwardsOutputEntity (GeneralResultFaultTreeIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionInwardsOutputEntity_GrassCoverErosionInwardsCalculationEntity + ON GrassCoverErosionInwardsOutputEntity (GrassCoverErosionInwardsCalculationEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteGrassCoverErosionInwardsOutputEntity_RemoveGeneralResultFaultTreeIllustrationPointEntity] + AFTER DELETE +ON GrassCoverErosionInwardsOutputEntity + FOR EACH ROW +BEGIN +DELETE +FROM GeneralResultFaultTreeIllustrationPointEntity +WHERE OLD.GeneralResultFaultTreeIllustrationPointEntityId IS NOT NULL + AND GeneralResultFaultTreeIllustrationPointEntityId IS OLD.GeneralResultFaultTreeIllustrationPointEntityId; +END; +; + +CREATE INDEX IXFK_GrassCoverErosionInwardsOvertoppingRateOutputEntity_GeneralResultFaultTreeIllustrationPointEntity + ON GrassCoverErosionInwardsOvertoppingRateOutputEntity (GeneralResultFaultTreeIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionInwardsOvertoppingRateOutputEntity_GrassCoverErosionInwardsOutputEntity + ON GrassCoverErosionInwardsOvertoppingRateOutputEntity (GrassCoverErosionInwardsOutputEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteGrassCoverErosionInwardsOvertoppingRateOutputEntity_RemoveGeneralResultFaultTreeIllustrationPointEntity] + AFTER DELETE +ON GrassCoverErosionInwardsOvertoppingRateOutputEntity + FOR EACH ROW +BEGIN +DELETE +FROM GeneralResultFaultTreeIllustrationPointEntity +WHERE OLD.GeneralResultFaultTreeIllustrationPointEntityId IS NOT NULL + AND GeneralResultFaultTreeIllustrationPointEntityId IS OLD.GeneralResultFaultTreeIllustrationPointEntityId; +END; +; + +CREATE INDEX IXFK_GrassCoverErosionOutwardsWaveConditionsCalculationEntity_CalculationGroupEntity + ON GrassCoverErosionOutwardsWaveConditionsCalculationEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionOutwardsWaveConditionsCalculationEntity_ForeshoreProfileEntity + ON GrassCoverErosionOutwardsWaveConditionsCalculationEntity (ForeshoreProfileEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionOutwardsWaveConditionsCalculationEntity_HydraulicLocationCalculationForTargetProbabilityCollectionEntity + ON GrassCoverErosionOutwardsWaveConditionsCalculationEntity (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionOutwardsWaveConditionsCalculationEntity_HydraulicLocationEntity + ON GrassCoverErosionOutwardsWaveConditionsCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_GrassCoverErosionOutwardsWaveConditionsOutputEntity_GrassCoverErosionOutwardsWaveConditionsCalculationEntity + ON GrassCoverErosionOutwardsWaveConditionsOutputEntity (GrassCoverErosionOutwardsWaveConditionsCalculationEntityId ASC) +; + +CREATE INDEX IXFK_HeightStructure_FailureMechanismEntity + ON HeightStructureEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_HeightStructuresCalculationEntity_CalculationGroupEntity + ON HeightStructuresCalculationEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_HeightStructuresCalculationEntity_ForeshoreProfileEntity + ON HeightStructuresCalculationEntity (ForeshoreProfileEntityId ASC) +; + +CREATE INDEX IXFK_HeightStructuresCalculationEntity_HeightStructureEntity + ON HeightStructuresCalculationEntity (HeightStructureEntityId ASC) +; + +CREATE INDEX IXFK_HeightStructuresCalculationEntity_HydraulicLocationEntity + ON HeightStructuresCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_HeightStructuresFailureMechanismMetaEntity_FailureMechanismEntity + ON HeightStructuresFailureMechanismMetaEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_HeightStructuresOutputEntity_HeightStructuresCalculationEntity + ON HeightStructuresOutputEntity (HeightStructuresCalculationEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteHeightStructuresOutputEntity_RemoveGeneralResultFaultTreeIllustrationPointEntity] + AFTER DELETE +ON HeightStructuresOutputEntity + FOR EACH ROW +BEGIN +DELETE +FROM GeneralResultFaultTreeIllustrationPointEntity +WHERE OLD.GeneralResultFaultTreeIllustrationPointEntityId IS NOT NULL + AND GeneralResultFaultTreeIllustrationPointEntityId IS OLD.GeneralResultFaultTreeIllustrationPointEntityId; +END; +; + +CREATE INDEX IXFK_HydraulicBoundaryDatabaseEntity_HydraulicBoundaryDataEntity + ON HydraulicBoundaryDatabaseEntity (HydraulicBoundaryDataEntityId ASC) +; + +CREATE INDEX IXFK_HydraulicBoundaryDatabaseEntity_AssessmentSectionEntity + ON HydraulicBoundaryDataEntity (AssessmentSectionEntityId ASC) +; + +CREATE INDEX IXFK_HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity_HydraulicLocationCalculationCollectionEntity + ON HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity (HydraulicLocationCalculationCollectionEntityId ASC) +; + +CREATE INDEX IXFK_HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity_HydraulicLocationCalculationEntity + ON HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity (HydraulicLocationCalculationEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteHydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity_RemoveHydraulicLocationCalculationEntity] + AFTER DELETE +ON HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity + FOR EACH ROW +BEGIN +DELETE +FROM HydraulicLocationCalculationEntity +WHERE OLD.HydraulicLocationCalculationEntityId IS NOT NULL + AND HydraulicLocationCalculationEntityId IS OLD.HydraulicLocationCalculationEntityId; +END; +; + +CREATE INDEX IXFK_HydraulicLocationCalculationEntity_HydraulicLocationEntity + ON HydraulicLocationCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_HydraulicBoundaryLocationCalculationsForTargetProbabilityEntity_AssessmentSectionEntity + ON HydraulicLocationCalculationForTargetProbabilityCollectionEntity (AssessmentSectionEntityId ASC) +; + +CREATE INDEX IXFK_HydraulicBoundaryLocationCalculationsForTargetProbabilityHydraulicLocationCalculationEntity_HydraulicBoundaryLocationCalculationsForTargetProbabilityEntity + ON HydraulicLocationCalculationForTargetProbabilityCollectionHydraulicLocationCalculationEntity (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId ASC) +; + +CREATE INDEX IXFK_HydraulicBoundaryLocationCalculationsForTargetProbabilityHydraulicLocationCalculationEntity_HydraulicLocationCalculationEntity + ON HydraulicLocationCalculationForTargetProbabilityCollectionHydraulicLocationCalculationEntity (HydraulicLocationCalculationEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteHydraulicLocationCalculationForTargetProbabilityCollectionHydraulicLocationCalculationEntity_RemoveHydraulicLocationCalculationEntity] + AFTER DELETE +ON HydraulicLocationCalculationForTargetProbabilityCollectionHydraulicLocationCalculationEntity + FOR EACH ROW +BEGIN +DELETE +FROM HydraulicLocationCalculationEntity +WHERE OLD.HydraulicLocationCalculationEntityId IS NOT NULL + AND HydraulicLocationCalculationEntityId IS OLD.HydraulicLocationCalculationEntityId; +END; +; + +CREATE INDEX IXFK_HydraulicLocationOutputEntity_GeneralResultSubMechanismIllustrationPointEntity + ON HydraulicLocationOutputEntity (GeneralResultSubMechanismIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_HydraulicLocationOutputEntity_HydraulicLocationCalculationEntity + ON HydraulicLocationOutputEntity (HydraulicLocationCalculationEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteHydraulicLocationOutputEntity_RemoveGeneralResultSubMechanismIllustrationPointEntity] + AFTER DELETE +ON HydraulicLocationOutputEntity + FOR EACH ROW +BEGIN +DELETE +FROM GeneralResultSubMechanismIllustrationPointEntity +WHERE OLD.GeneralResultSubMechanismIllustrationPointEntityId IS NOT NULL + AND GeneralResultSubMechanismIllustrationPointEntityId IS OLD.GeneralResultSubMechanismIllustrationPointEntityId; +END; +; + +CREATE INDEX IXFK_IllustrationPointResultEntity_SubMechanismIllustrationPointEntity + ON IllustrationPointResultEntity (SubMechanismIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_MacroStabilityInwardsCalculationEntity_CalculationGroupEntity + ON MacroStabilityInwardsCalculationEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_MacroStabilityInwardsCalculationEntity_HydraulicLocationEntity + ON MacroStabilityInwardsCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_MacroStabilityInwardsCalculationEntity_MacroStabilityInwardsStochasticSoilProfileEntity + ON MacroStabilityInwardsCalculationEntity (MacroStabilityInwardsStochasticSoilProfileEntityId ASC) +; + +CREATE INDEX IXFK_MacroStabilityInwardsCalculationOutput_MacroStabilityInwardsCalculationEntity + ON MacroStabilityInwardsCalculationOutputEntity (MacroStabilityInwardsCalculationEntityId ASC) +; + +CREATE INDEX IXFK_MacroStabilityCharacteristicPointEntity_SurfaceLineEntity + ON MacroStabilityInwardsCharacteristicPointEntity (SurfaceLineEntityId ASC) +; + +CREATE INDEX IXFK_MacroStabilityInwardsFailureMechanismMetaEntity_FailureMechanismEntity + ON MacroStabilityInwardsFailureMechanismMetaEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_MacroStabilityInwardsFailureMechanismSectionConfigurationEntity_FailureMechanismSectionEntity + ON MacroStabilityInwardsFailureMechanismSectionConfigurationEntity (FailureMechanismSectionEntityId ASC) +; + +CREATE INDEX IXFK_MacroStabilityInwardsSoilLayerOneDEntity_MacroStabilityInwardsSoilProfileOneDEntity + ON MacroStabilityInwardsSoilLayerOneDEntity (MacroStabilityInwardsSoilProfileOneDEntityId ASC) +; + +CREATE TRIGGER [TR_AfterDeleteMacroStabilityInwardsSoilProfileTwoDEntity_MacroStabilityInwardsSoilLayerTwoDEntity] + AFTER DELETE +ON MacroStabilityInwardsSoilProfileTwoDEntity + FOR EACH ROW +BEGIN +DELETE +FROM MacroStabilityInwardsSoilLayerTwoDEntity +WHERE OLD.MacroStabilityInwardsSoilLayerTwoDEntity IS NOT NULL + AND MacroStabilityInwardsSoilLayerTwoDEntity IS OLD.MacroStabilityInwardsSoilLayerTwoDEntity; +END; +; + +CREATE INDEX IXFK_MacroStabilityInwardsStochasticSoilProfileEntity_StochasticSoilModelEntity + ON MacroStabilityInwardsStochasticSoilProfileEntity (StochasticSoilModelEntityId ASC) +; +CREATE TRIGGER [TR_BeforeInsertMacroStabilityInwardsStochasticSoilProfileEntity_MustHaveOneDOrTwoD] + BEFORE INSERT + ON MacroStabilityInwardsStochasticSoilProfileEntity + FOR EACH ROW +BEGIN +SELECT + CASE + WHEN + ( + NEW.MacroStabilityInwardsSoilProfileOneDEntityId IS NULL AND NEW.MacroStabilityInwardsSoilProfileTwoDEntityId IS NULL + ) OR ( + NEW.MacroStabilityInwardsSoilProfileOneDEntityId IS NOT NULL AND NEW.MacroStabilityInwardsSoilProfileTwoDEntityId IS NOT NULL + ) + THEN RAISE(FAIL, 'Either SoilProfile1D or SoilProfile2D must be set.') + END; +END; +; + +CREATE TRIGGER [TR_BeforeUpdateMacroStabilityInwardsStochasticSoilProfileEntity_MustHaveOneDOrTwoD] + BEFORE UPDATE + ON MacroStabilityInwardsStochasticSoilProfileEntity + FOR EACH ROW +BEGIN +SELECT + CASE + WHEN + ( + NEW.MacroStabilityInwardsSoilProfileOneDEntityId IS NULL AND NEW.MacroStabilityInwardsSoilProfileTwoDEntityId IS NULL + ) OR ( + NEW.MacroStabilityInwardsSoilProfileOneDEntityId IS NOT NULL AND NEW.MacroStabilityInwardsSoilProfileTwoDEntityId IS NOT NULL + ) + THEN RAISE(FAIL, 'Either SoilProfile1D or SoilProfile2D must be set.') + END; +END; +; + +CREATE INDEX IXFK_NonAdoptableFailureMechanismSectionResultEntity_FailureMechanismSectionEntity + ON NonAdoptableFailureMechanismSectionResultEntity (FailureMechanismSectionEntityId ASC) +; + +CREATE INDEX IXFK_PipingFailureMechanismMetaEntity_FailureMechanismEntity + ON PipingFailureMechanismMetaEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_ProbabilisticPipingCalculationEntity_CalculationGroupEntity + ON ProbabilisticPipingCalculationEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_ProbabilisticPipingCalculationEntity_HydraulicLocationEntity + ON ProbabilisticPipingCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_ProbabilisticPipingCalculationEntity_PipingStochasticSoilProfileEntity + ON ProbabilisticPipingCalculationEntity (PipingStochasticSoilProfileEntityId ASC) +; + +CREATE INDEX IXFK_ProbabilisticPipingCalculationEntity_SurfaceLineEntity + ON ProbabilisticPipingCalculationEntity (SurfaceLineEntityId ASC) +; + +CREATE INDEX IXFK_ProbabilisticPipingCalculationOutputEntity_ProbabilisticPipingCalculationEntity + ON ProbabilisticPipingCalculationOutputEntity (ProbabilisticPipingCalculationEntityId ASC) +; + +CREATE INDEX IXFK_ProbabilisticPipingCalculationOutputEntity_Profile_GeneralResultFaultTreeIllustrationPointEntity + ON ProbabilisticPipingCalculationOutputEntity (ProfileSpecificGeneralResultFaultTreeIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_ProbabilisticPipingCalculationOutputEntity_Profile_GeneralResultSubMechanismIllustrationPointEntity + ON ProbabilisticPipingCalculationOutputEntity (ProfileSpecificGeneralResultSubMechanismIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_ProbabilisticPipingCalculationOutputEntity_Section_GeneralResultFaultTreeIllustrationPointEntity + ON ProbabilisticPipingCalculationOutputEntity (ProfileSpecificGeneralResultFaultTreeIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_ProbabilisticPipingCalculationOutputEntity_Section_GeneralResultSubMechanismIllustrationPointEntity + ON ProbabilisticPipingCalculationOutputEntity (SectionSpecificGeneralResultSubMechanismIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_SemiProbabilisticPipingCalculationOutputEntity_SemiProbabilisticPipingCalculationEntity + ON SemiProbabilisticPipingCalculationOutputEntity (SemiProbabilisticPipingCalculationEntityId ASC) +; + +CREATE INDEX IXFK_SpecificFailureMechanismEntity_AssessmentSectionEntity + ON SpecificFailureMechanismEntity (AssessmentSectionEntityId ASC) +; + +CREATE INDEX IXFK_SpecificFailureMechanismFailureMechanismSectionEntity_FailureMechanismSectionEntity + ON SpecificFailureMechanismFailureMechanismSectionEntity (FailureMechanismSectionEntityId ASC) +; + +CREATE INDEX IXFK_SpecificFailureMechanismFailureMechanismSectionEntity_SpecificFailureMechanismEntity + ON SpecificFailureMechanismFailureMechanismSectionEntity (SpecificFailureMechanismEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteSpecificFailureMechanismFailureMechanismSectionEntity_RemoveFailureMechanismSectionEntityId] + AFTER DELETE +ON SpecificFailureMechanismFailureMechanismSectionEntity + FOR EACH ROW +BEGIN +DELETE +FROM FailureMechanismSectionEntity +WHERE OLD.FailureMechanismSectionEntityId IS NOT NULL + AND FailureMechanismSectionEntityId IS OLD.FailureMechanismSectionEntityId; +END; +; + +CREATE INDEX IXFK_StabilityPointStructureEntity_FailureMechanismEntity + ON StabilityPointStructureEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_StabilityPointStructuresCalculationEntity_CalculationGroupEntity + ON StabilityPointStructuresCalculationEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_StabilityPointStructuresCalculationEntity_ForeshoreProfileEntity + ON StabilityPointStructuresCalculationEntity (ForeshoreProfileEntityId ASC) +; + +CREATE INDEX IXFK_StabilityPointStructuresCalculationEntity_HydraulicLocationEntity + ON StabilityPointStructuresCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_StabilityPointStructuresCalculationEntity_StabilityPointStructureEntity + ON StabilityPointStructuresCalculationEntity (StabilityPointStructureEntityId ASC) +; + +CREATE INDEX IXFK_StrengthStabilityPointConstructionFailureMechanismMetaEntity_FailureMechanismEntity + ON StabilityPointStructuresFailureMechanismMetaEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_StabilityPointStructuresOutputEntity_StabilityPointStructuresCalculationEntity + ON StabilityPointStructuresOutputEntity (StabilityPointStructuresCalculationEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteStabilityPointStructuresOutputEntity_RemoveGeneralResultFaultTreeIllustrationPointEntity] + AFTER DELETE +ON StabilityPointStructuresOutputEntity + FOR EACH ROW +BEGIN +DELETE +FROM GeneralResultFaultTreeIllustrationPointEntity +WHERE OLD.GeneralResultFaultTreeIllustrationPointEntityId IS NOT NULL + AND GeneralResultFaultTreeIllustrationPointEntityId IS OLD.GeneralResultFaultTreeIllustrationPointEntityId; +END; +; + +CREATE INDEX IXFK_StabilityStoneCoverFailureMechanismMetaEntity_FailureMechanismEntity + ON StabilityStoneCoverFailureMechanismMetaEntity (FailureMechanismEntityId ASC) +; + +CREATE INDEX IXFK_StabilityStoneCoverWaveConditionsCalculationEntity_CalculationGroupEntity + ON StabilityStoneCoverWaveConditionsCalculationEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_StabilityStoneCoverWaveConditionsCalculationEntity_ForeshoreProfileEntity + ON StabilityStoneCoverWaveConditionsCalculationEntity (ForeshoreProfileEntityId ASC) +; + +CREATE INDEX IXFK_StabilityStoneCoverWaveConditionsCalculationEntity_HydraulicLocationCalculationForTargetProbabilityCollectionEntity + ON StabilityStoneCoverWaveConditionsCalculationEntity (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId ASC) +; + +CREATE INDEX IXFK_StabilityStoneCoverWaveConditionsCalculationEntity_HydraulicLocationEntity + ON StabilityStoneCoverWaveConditionsCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_StabilityStoneCoverWaveConditionsOutputEntity_StabilityStoneCoverWaveConditionsCalculationEntity + ON StabilityStoneCoverWaveConditionsOutputEntity (StabilityStoneCoverWaveConditionsCalculationEntityId ASC) +; + +CREATE INDEX IXFK_SubMechanismIllustrationPointStochast_SubMechanismIllustrationPointEntity + ON SubMechanismIllustrationPointStochastEntity (SubMechanismIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_TopLevelFaultTreeIllustrationPointEntity_FaultTreeIllustrationPointEntity + ON TopLevelFaultTreeIllustrationPointEntity (FaultTreeIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_TopLevelFaultTreeIllustrationPointEntity_GeneralResultFaultTreeIllustrationPointEntity + ON TopLevelFaultTreeIllustrationPointEntity (GeneralResultFaultTreeIllustrationPointEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteTopLevelFaultTreeIllustrationPointEntity_RemoveFaultTreeIllustrationPointEntity] + AFTER DELETE +ON TopLevelFaultTreeIllustrationPointEntity + FOR EACH ROW +BEGIN +DELETE +FROM FaultTreeIllustrationPointEntity +WHERE OLD.FaultTreeIllustrationPointEntityId IS NOT NULL + AND FaultTreeIllustrationPointEntityId IS OLD.FaultTreeIllustrationPointEntityId; +END; +; + +CREATE INDEX IXFK_TopLevelSubMechanismIllustrationPointEntity_GeneralResultSubMechanismIllustrationPointEntity + ON TopLevelSubMechanismIllustrationPointEntity (GeneralResultSubMechanismIllustrationPointEntityId ASC) +; + +CREATE INDEX IXFK_TopLevelSubMechanismIllustrationPointEntity_SubMechanismIllustrationPointEntity + ON TopLevelSubMechanismIllustrationPointEntity (SubMechanismIllustrationPointEntityId ASC) +; +CREATE TRIGGER [TR_AfterDeleteTopLevelSubMechanismIllustrationPointEntity_RemoveSubMechanismIllustrationPointEntity] + AFTER DELETE +ON TopLevelSubMechanismIllustrationPointEntity + FOR EACH ROW +BEGIN +DELETE +FROM SubMechanismIllustrationPointEntity +WHERE OLD.SubMechanismIllustrationPointEntityId IS NOT NULL + AND SubMechanismIllustrationPointEntityId IS OLD.SubMechanismIllustrationPointEntityId; +END; +; + +CREATE INDEX IXFK_WaveImpactAsphaltCoverWaveConditionsCalculationEntity_CalculationGroupEntity + ON WaveImpactAsphaltCoverWaveConditionsCalculationEntity (CalculationGroupEntityId ASC) +; + +CREATE INDEX IXFK_WaveImpactAsphaltCoverWaveConditionsCalculationEntity_ForeshoreProfileEntity + ON WaveImpactAsphaltCoverWaveConditionsCalculationEntity (ForeshoreProfileEntityId ASC) +; + +CREATE INDEX IXFK_WaveImpactAsphaltCoverWaveConditionsCalculationEntity_HydraulicLocationCalculationForTargetProbabilityCollectionEntity + ON WaveImpactAsphaltCoverWaveConditionsCalculationEntity (HydraulicLocationCalculationForTargetProbabilityCollectionEntityId ASC) +; + +CREATE INDEX IXFK_WaveImpactAsphaltCoverWaveConditionsCalculationEntity_HydraulicLocationEntity + ON WaveImpactAsphaltCoverWaveConditionsCalculationEntity (HydraulicLocationEntityId ASC) +; + +CREATE INDEX IXFK_WaveImpactAsphaltCoverWaveConditionsOutputEntity_WaveImpactAsphaltCoverWaveConditionsCalculationEntity + ON WaveImpactAsphaltCoverWaveConditionsOutputEntity (WaveImpactAsphaltCoverWaveConditionsCalculationEntityId ASC) +; Fisheye: Tag 68c67ec6bb74c35eeecbf0b95983a5c780f6d008 refers to a dead (removed) revision in file `Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_23.1_23.2.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_23.1_24.1.sql =================================================================== diff -u --- Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_23.1_24.1.sql (revision 0) +++ Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_23.1_24.1.sql (revision 68c67ec6bb74c35eeecbf0b95983a5c780f6d008) @@ -0,0 +1,708 @@ +/* +Migration script for migrating Riskeer databases. +SourceProject version: 23.1 +TargetProject version: 24.1 +*/ +PRAGMA foreign_keys = OFF; + +ATTACH DATABASE "{0}" AS SOURCEPROJECT; + +INSERT INTO AdoptableFailureMechanismSectionResultEntity SELECT * FROM [SOURCEPROJECT].AdoptableFailureMechanismSectionResultEntity; +INSERT INTO AdoptableFailureMechanismSectionResultEntity( + [FailureMechanismSectionEntityId], + [IsRelevant], + [InitialFailureMechanismResultType], + [ManualInitialFailureMechanismResultSectionProbability], + [FurtherAnalysisType], + [RefinedSectionProbability]) +SELECT + [FailureMechanismSectionEntityId], + [IsRelevant], + [InitialFailureMechanismResultType], + [ManualInitialFailureMechanismResultSectionProbability], + [FurtherAnalysisType], + CASE + WHEN [ProbabilityRefinementType] = 2 OR [ProbabilityRefinementType] = 3 + THEN [RefinedSectionProbability] + WHEN [ProbabilityRefinementType] = 1 + THEN NULL + END +FROM [SOURCEPROJECT].AdoptableWithProfileProbabilityFailureMechanismSectionResultEntity; +INSERT INTO AssessmentSectionEntity( + [AssessmentSectionEntityId], + [ProjectEntityId], + [HydraulicLocationCalculationCollectionEntity1Id], + [HydraulicLocationCalculationCollectionEntity2Id], + [Id], + [Name], + [Comments], + [MaximumAllowableFloodingProbability], + [SignalFloodingProbability], + [NormativeProbabilityType], + [Composition], + [ReferenceLinePointXml], + [AreFailureMechanismsCorrelated]) +SELECT + [AssessmentSectionEntityId], + [ProjectEntityId], + [HydraulicLocationCalculationCollectionEntity1Id], + [HydraulicLocationCalculationCollectionEntity2Id], + [Id], + [Name], + [Comments], + [MaximumAllowableFloodingProbability], + [SignalFloodingProbability], + [NormativeProbabilityType], + [Composition], + [ReferenceLinePointXml], + 0 +FROM [SOURCEPROJECT].AssessmentSectionEntity; +INSERT INTO BackgroundDataEntity SELECT * FROM [SOURCEPROJECT].BackgroundDataEntity; +INSERT INTO BackgroundDataMetaEntity SELECT * FROM [SOURCEPROJECT].BackgroundDataMetaEntity; +INSERT INTO CalculationGroupEntity SELECT * FROM [SOURCEPROJECT].CalculationGroupEntity; +INSERT INTO ClosingStructureEntity SELECT * FROM [SOURCEPROJECT].ClosingStructureEntity; +INSERT INTO ClosingStructuresCalculationEntity SELECT * FROM [SOURCEPROJECT].ClosingStructuresCalculationEntity; +INSERT INTO ClosingStructuresFailureMechanismMetaEntity( + [ClosingStructuresFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [ClosingStructureCollectionSourcePath], + [ForeshoreProfileCollectionSourcePath]) +SELECT + [ClosingStructuresFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [ClosingStructureCollectionSourcePath], + [ForeshoreProfileCollectionSourcePath] +FROM [SOURCEPROJECT].ClosingStructuresFailureMechanismMetaEntity; +INSERT INTO DikeProfileEntity SELECT * FROM [SOURCEPROJECT].DikeProfileEntity; +INSERT INTO DuneErosionFailureMechanismMetaEntity( + [DuneErosionFailureMechanismMetaEntityId], + [FailureMechanismEntityId]) +SELECT + [DuneErosionFailureMechanismMetaEntityId], + [FailureMechanismEntityId] +FROM [SOURCEPROJECT].DuneErosionFailureMechanismMetaEntity; +INSERT INTO DuneLocationCalculationEntity SELECT * FROM [SOURCEPROJECT].DuneLocationCalculationEntity; +INSERT INTO DuneLocationCalculationForTargetProbabilityCollectionEntity SELECT * FROM [SOURCEPROJECT].DuneLocationCalculationForTargetProbabilityCollectionEntity; +INSERT INTO DuneLocationEntity SELECT * FROM [SOURCEPROJECT].DuneLocationEntity; +INSERT INTO FailureMechanismEntity SELECT * FROM [SOURCEPROJECT].FailureMechanismEntity; +INSERT INTO FailureMechanismFailureMechanismSectionEntity SELECT * FROM [SOURCEPROJECT].FailureMechanismFailureMechanismSectionEntity; +INSERT INTO FailureMechanismSectionEntity SELECT * FROM [SOURCEPROJECT].FailureMechanismSectionEntity; +INSERT INTO ForeshoreProfileEntity SELECT * FROM [SOURCEPROJECT].ForeshoreProfileEntity; +INSERT INTO GrassCoverErosionInwardsCalculationEntity SELECT * FROM [SOURCEPROJECT].GrassCoverErosionInwardsCalculationEntity; +INSERT INTO GrassCoverErosionInwardsFailureMechanismMetaEntity( + [GrassCoverErosionInwardsFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [DikeProfileCollectionSourcePath]) +SELECT + [GrassCoverErosionInwardsFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [DikeProfileCollectionSourcePath] +FROM [SOURCEPROJECT].GrassCoverErosionInwardsFailureMechanismMetaEntity; +INSERT INTO GrassCoverErosionOutwardsFailureMechanismMetaEntity( + [GrassCoverErosionOutwardsFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [ForeshoreProfileCollectionSourcePath]) +SELECT + [GrassCoverErosionOutwardsFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [ForeshoreProfileCollectionSourcePath] +FROM [SOURCEPROJECT].GrassCoverErosionOutwardsFailureMechanismMetaEntity; +INSERT INTO GrassCoverErosionOutwardsWaveConditionsCalculationEntity ( + [GrassCoverErosionOutwardsWaveConditionsCalculationEntityId], + [CalculationGroupEntityId], + [ForeshoreProfileEntityId], + [HydraulicLocationEntityId], + [HydraulicLocationCalculationForTargetProbabilityCollectionEntityId], + [Order], + [Name], + [Comments], + [UseBreakWater], + [BreakWaterType], + [BreakWaterHeight], + [UseForeshore], + [Orientation], + [UpperBoundaryRevetment], + [LowerBoundaryRevetment], + [UpperBoundaryWaterLevels], + [LowerBoundaryWaterLevels], + [StepSize], + [CalculationType], + [WaterLevelType]) +SELECT + [GrassCoverErosionOutwardsWaveConditionsCalculationEntityId], + [CalculationGroupEntityId], + [ForeshoreProfileEntityId], + [HydraulicLocationEntityId], + [HydraulicLocationCalculationForTargetProbabilityCollectionEntityId], + [Order], + [Name], + [Comments], + [UseBreakWater], + [BreakWaterType], + [BreakWaterHeight], + [UseForeshore], + [Orientation], + [UpperBoundaryRevetment], + [LowerBoundaryRevetment], + [UpperBoundaryWaterLevels], + [LowerBoundaryWaterLevels], + CASE + WHEN [StepSize] = 1 + THEN 0.5 + WHEN [StepSize] = 2 + THEN 1 + WHEN [StepSize] = 3 + THEN 2 + END, + [CalculationType], + [WaterLevelType] +FROM [SOURCEPROJECT].GrassCoverErosionOutwardsWaveConditionsCalculationEntity; +INSERT INTO HeightStructureEntity SELECT * FROM [SOURCEPROJECT].HeightStructureEntity; +INSERT INTO HeightStructuresCalculationEntity SELECT * FROM [SOURCEPROJECT].HeightStructuresCalculationEntity; +INSERT INTO HeightStructuresFailureMechanismMetaEntity( + [HeightStructuresFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [HeightStructureCollectionSourcePath], + [ForeshoreProfileCollectionSourcePath]) +SELECT + [HeightStructuresFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [HeightStructureCollectionSourcePath], + [ForeshoreProfileCollectionSourcePath] +FROM [SOURCEPROJECT].HeightStructuresFailureMechanismMetaEntity; +INSERT INTO HydraulicBoundaryDataEntity SELECT * FROM [SOURCEPROJECT].HydraulicBoundaryDataEntity; +INSERT INTO HydraulicBoundaryDatabaseEntity SELECT * FROM [SOURCEPROJECT].HydraulicBoundaryDatabaseEntity; +INSERT INTO HydraulicLocationCalculationCollectionEntity SELECT * FROM [SOURCEPROJECT].HydraulicLocationCalculationCollectionEntity; +INSERT INTO HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity SELECT * FROM [SOURCEPROJECT].HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity; +INSERT INTO HydraulicLocationCalculationEntity SELECT * FROM [SOURCEPROJECT].HydraulicLocationCalculationEntity; +INSERT INTO HydraulicLocationCalculationForTargetProbabilityCollectionEntity SELECT * FROM [SOURCEPROJECT].HydraulicLocationCalculationForTargetProbabilityCollectionEntity; +INSERT INTO HydraulicLocationCalculationForTargetProbabilityCollectionHydraulicLocationCalculationEntity SELECT * FROM [SOURCEPROJECT].HydraulicLocationCalculationForTargetProbabilityCollectionHydraulicLocationCalculationEntity; +INSERT INTO HydraulicLocationEntity SELECT * FROM [SOURCEPROJECT].HydraulicLocationEntity; +INSERT INTO MacroStabilityInwardsCalculationEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsCalculationEntity; +INSERT INTO MacroStabilityInwardsCharacteristicPointEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsCharacteristicPointEntity; +INSERT INTO MacroStabilityInwardsFailureMechanismMetaEntity( + [MacroStabilityInwardsFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [StochasticSoilModelCollectionSourcePath], + [SurfaceLineCollectionSourcePath]) +SELECT + [MacroStabilityInwardsFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [StochasticSoilModelCollectionSourcePath], + [SurfaceLineCollectionSourcePath] +FROM [SOURCEPROJECT].MacroStabilityInwardsFailureMechanismMetaEntity; +INSERT INTO MacroStabilityInwardsFailureMechanismSectionConfigurationEntity( + [FailureMechanismSectionEntityId], + [A]) +SELECT + [FailureMechanismSectionEntityId], + 1 +FROM FailureMechanismEntity +JOIN FailureMechanismFailureMechanismSectionEntity USING(FailureMechanismEntityId) +WHERE FailureMechanismType = 2; +INSERT INTO MacroStabilityInwardsPreconsolidationStressEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsPreconsolidationStressEntity; +INSERT INTO MacroStabilityInwardsSoilLayerOneDEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsSoilLayerOneDEntity; +INSERT INTO MacroStabilityInwardsSoilLayerTwoDEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsSoilLayerTwoDEntity; +INSERT INTO MacroStabilityInwardsSoilProfileOneDEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsSoilProfileOneDEntity; +INSERT INTO MacroStabilityInwardsSoilProfileTwoDEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsSoilProfileTwoDEntity; +INSERT INTO MacroStabilityInwardsSoilProfileTwoDSoilLayerTwoDEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsSoilProfileTwoDSoilLayerTwoDEntity; +INSERT INTO MacroStabilityInwardsStochasticSoilProfileEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsStochasticSoilProfileEntity; +INSERT INTO NonAdoptableFailureMechanismSectionResultEntity SELECT * FROM [SOURCEPROJECT].NonAdoptableFailureMechanismSectionResultEntity; +INSERT INTO NonAdoptableFailureMechanismSectionResultEntity( + [FailureMechanismSectionEntityId], + [IsRelevant], + [InitialFailureMechanismResultType], + [ManualInitialFailureMechanismResultSectionProbability], + [FurtherAnalysisType], + [RefinedSectionProbability]) +SELECT + [FailureMechanismSectionEntityId], + [IsRelevant], + [InitialFailureMechanismResultType], + [ManualInitialFailureMechanismResultSectionProbability], + [FurtherAnalysisType], + [RefinedSectionProbability] +FROM [SOURCEPROJECT].NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity; +INSERT INTO PipingCharacteristicPointEntity SELECT * FROM [SOURCEPROJECT].PipingCharacteristicPointEntity; +INSERT INTO PipingFailureMechanismMetaEntity( + [PipingFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [WaterVolumetricWeight], + [StochasticSoilModelCollectionSourcePath], + [SurfaceLineCollectionSourcePath], + [ScenarioConfigurationType]) +SELECT + [PipingFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [WaterVolumetricWeight], + [StochasticSoilModelCollectionSourcePath], + [SurfaceLineCollectionSourcePath], + [PipingScenarioConfigurationType] +FROM [SOURCEPROJECT].PipingFailureMechanismMetaEntity; +INSERT INTO PipingFailureMechanismSectionConfigurationEntity( + [PipingFailureMechanismSectionConfigurationEntityId], + [FailureMechanismSectionEntityId], + [ScenarioConfigurationType], + [A]) +SELECT + [PipingScenarioConfigurationPerFailureMechanismSectionEntityId], + [FailureMechanismSectionEntityId], + [PipingScenarioConfigurationPerFailureMechanismSectionType], + 1 +FROM [SOURCEPROJECT].PipingScenarioConfigurationPerFailureMechanismSectionEntity; +INSERT INTO PipingSoilLayerEntity SELECT * FROM [SOURCEPROJECT].PipingSoilLayerEntity; +INSERT INTO PipingSoilProfileEntity SELECT * FROM [SOURCEPROJECT].PipingSoilProfileEntity; +INSERT INTO PipingStochasticSoilProfileEntity SELECT * FROM [SOURCEPROJECT].PipingStochasticSoilProfileEntity; +INSERT INTO ProbabilisticPipingCalculationEntity SELECT * FROM [SOURCEPROJECT].ProbabilisticPipingCalculationEntity; +INSERT INTO ProjectEntity SELECT * FROM [SOURCEPROJECT].ProjectEntity; +INSERT INTO SemiProbabilisticPipingCalculationEntity SELECT * FROM [SOURCEPROJECT].SemiProbabilisticPipingCalculationEntity; +INSERT INTO SpecificFailureMechanismEntity( + [SpecificFailureMechanismEntityId], + [AssessmentSectionEntityId], + [Name], + [Code], + [Order], + [InAssembly], + [FailureMechanismSectionCollectionSourcePath], + [InAssemblyInputComments], + [InAssemblyOutputComments], + [NotInAssemblyComments], + [FailureMechanismAssemblyResultProbabilityResultType], + [FailureMechanismAssemblyResultManualFailureMechanismAssemblyProbability]) +SELECT + [SpecificFailureMechanismEntityId], + [AssessmentSectionEntityId], + [Name], + [Code], + [Order], + [InAssembly], + [FailureMechanismSectionCollectionSourcePath], + [InAssemblyInputComments], + [InAssemblyOutputComments], + [NotInAssemblyComments], + [FailureMechanismAssemblyResultProbabilityResultType], + [FailureMechanismAssemblyResultManualFailureMechanismAssemblyProbability] +FROM [SOURCEPROJECT].SpecificFailureMechanismEntity; +INSERT INTO SpecificFailureMechanismFailureMechanismSectionEntity SELECT * FROM [SOURCEPROJECT].SpecificFailureMechanismFailureMechanismSectionEntity; +INSERT INTO StabilityPointStructureEntity SELECT * FROM [SOURCEPROJECT].StabilityPointStructureEntity; +INSERT INTO StabilityPointStructuresCalculationEntity SELECT * FROM [SOURCEPROJECT].StabilityPointStructuresCalculationEntity; +INSERT INTO StabilityPointStructuresFailureMechanismMetaEntity( + [StabilityPointStructuresFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [ForeshoreProfileCollectionSourcePath], + [StabilityPointStructureCollectionSourcePath]) +SELECT + [StabilityPointStructuresFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [ForeshoreProfileCollectionSourcePath], + [StabilityPointStructureCollectionSourcePath] +FROM [SOURCEPROJECT].StabilityPointStructuresFailureMechanismMetaEntity; +INSERT INTO StabilityStoneCoverFailureMechanismMetaEntity( + [StabilityStoneCoverFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [ForeshoreProfileCollectionSourcePath]) +SELECT + [StabilityStoneCoverFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [ForeshoreProfileCollectionSourcePath] +FROM [SOURCEPROJECT].StabilityStoneCoverFailureMechanismMetaEntity; +INSERT INTO StabilityStoneCoverWaveConditionsCalculationEntity( + [StabilityStoneCoverWaveConditionsCalculationEntityId], + [CalculationGroupEntityId], + [ForeshoreProfileEntityId], + [HydraulicLocationEntityId], + [HydraulicLocationCalculationForTargetProbabilityCollectionEntityId], + [Order], + [Name], + [Comments], + [UseBreakWater], + [BreakWaterType], + [BreakWaterHeight], + [UseForeshore], + [Orientation], + [UpperBoundaryRevetment], + [LowerBoundaryRevetment], + [UpperBoundaryWaterLevels], + [LowerBoundaryWaterLevels], + [StepSize], + [CalculationType], + [WaterLevelType]) +SELECT + [StabilityStoneCoverWaveConditionsCalculationEntityId], + [CalculationGroupEntityId], + [ForeshoreProfileEntityId], + [HydraulicLocationEntityId], + [HydraulicLocationCalculationForTargetProbabilityCollectionEntityId], + [Order], + [Name], + [Comments], + [UseBreakWater], + [BreakWaterType], + [BreakWaterHeight], + [UseForeshore], + [Orientation], + [UpperBoundaryRevetment], + [LowerBoundaryRevetment], + [UpperBoundaryWaterLevels], + [LowerBoundaryWaterLevels], + CASE + WHEN [StepSize] = 1 + THEN 0.5 + WHEN [StepSize] = 2 + THEN 1 + WHEN [StepSize] = 3 + THEN 2 + END, + [CalculationType], + [WaterLevelType] +FROM [SOURCEPROJECT].StabilityStoneCoverWaveConditionsCalculationEntity; +INSERT INTO StochastEntity SELECT * FROM [SOURCEPROJECT].StochastEntity; +INSERT INTO StochasticSoilModelEntity SELECT * FROM [SOURCEPROJECT].StochasticSoilModelEntity; +INSERT INTO SurfaceLineEntity SELECT * FROM [SOURCEPROJECT].SurfaceLineEntity; +INSERT INTO WaveImpactAsphaltCoverFailureMechanismMetaEntity( + [WaveImpactAsphaltCoverFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [ForeshoreProfileCollectionSourcePath]) +SELECT + [WaveImpactAsphaltCoverFailureMechanismMetaEntityId], + [FailureMechanismEntityId], + [ForeshoreProfileCollectionSourcePath] +FROM [SOURCEPROJECT].WaveImpactAsphaltCoverFailureMechanismMetaEntity; +INSERT INTO WaveImpactAsphaltCoverWaveConditionsCalculationEntity( + [WaveImpactAsphaltCoverWaveConditionsCalculationEntityId], + [CalculationGroupEntityId], + [ForeshoreProfileEntityId], + [HydraulicLocationEntityId], + [HydraulicLocationCalculationForTargetProbabilityCollectionEntityId], + [Order], + [Name], + [Comments], + [UseBreakWater], + [BreakWaterType], + [BreakWaterHeight], + [UseForeshore], + [Orientation], + [UpperBoundaryRevetment], + [LowerBoundaryRevetment], + [UpperBoundaryWaterLevels], + [LowerBoundaryWaterLevels], + [StepSize], + [WaterLevelType]) +SELECT + [WaveImpactAsphaltCoverWaveConditionsCalculationEntityId], + [CalculationGroupEntityId], + [ForeshoreProfileEntityId], + [HydraulicLocationEntityId], + [HydraulicLocationCalculationForTargetProbabilityCollectionEntityId], + [Order], + [Name], + [Comments], + [UseBreakWater], + [BreakWaterType], + [BreakWaterHeight], + [UseForeshore], + [Orientation], + [UpperBoundaryRevetment], + [LowerBoundaryRevetment], + [UpperBoundaryWaterLevels], + [LowerBoundaryWaterLevels], + CASE + WHEN [StepSize] = 1 + THEN 0.5 + WHEN [StepSize] = 2 + THEN 1 + WHEN [StepSize] = 3 + THEN 2 + END, + [WaterLevelType] +FROM [SOURCEPROJECT].WaveImpactAsphaltCoverWaveConditionsCalculationEntity; + +INSERT INTO VersionEntity ( + [VersionId], + [Version], + [Timestamp], + [FingerPrint]) +SELECT [VersionId], + "24.1", + [Timestamp], + [FingerPrint] +FROM [SOURCEPROJECT].VersionEntity; + +/* +Outputs that used HydraRing are not migrated +*/ +-- ClosingStructuresOutputEntity +-- DuneLocationCalculationOutputEntity +-- GrassCoverErosionInwardsDikeHeightOutputEntity +-- GrassCoverErosionInwardsOutputEntity +-- GrassCoverErosionInwardsOvertoppingRateOutputEntity +-- GrassCoverErosionOutwardsWaveConditionsOutputEntity +-- HeightStructuresOutputEntity +-- HydraulicLocationOutputEntity +-- SemiProbabilisticPipingCalculationOutputEntity +-- ProbabilisticPipingCalculationOutputEntity +-- StabilityPointStructuresOutputEntity +-- StabilityStoneCoverWaveConditionsOutputEntity +-- WaveImpactAsphaltCoverWaveConditionsOutputEntity +-- FaultTreeIllustrationPointEntity +-- FaultTreeIllustrationPointStochastEntity +-- FaultTreeSubMechanismIllustrationPointEntity +-- GeneralResultFaultTreeIllustrationPointEntity +-- GeneralResultFaultTreeIllustrationPointStochastEntity +-- GeneralResultSubMechanismIllustrationPointEntity +-- GeneralResultSubMechanismIllustrationPointStochastEntity +-- IllustrationPointResultEntity +-- SubMechanismIllustrationPointEntity +-- SubMechanismIllustrationPointStochastEntity +-- TopLevelFaultTreeIllustrationPointEntity +-- TopLevelSubMechanismIllustrationPointEntity +-- MacroStabilityInwardsCalculationOutputEntity + +/* +Tables that only have length effect columns are not migrated: +*/ + +-- GrassCoverSlipOffInwardsFailureMechanismMetaEntity +-- GrassCoverSlipOffOutwardsFailureMechanismMetaEntity +-- MicrostabilityFailureMechanismMetaEntity +-- PipingStructureFailureMechanismMetaEntity +-- WaterPressureAsphaltCoverFailureMechanismMetaEntity + +/* +Write migration logging +*/ +ATTACH DATABASE "{1}" AS LOGDATABASE; + +CREATE TABLE IF NOT EXISTS [LOGDATABASE].'MigrationLogEntity' +( + 'MigrationLogEntityId' INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + 'FromVersion' VARCHAR(20) NOT NULL, + 'ToVersion' VARCHAR(20) NOT NULL, + 'LogMessage' TEXT NOT NULL); + +INSERT INTO [LOGDATABASE].MigrationLogEntity ( + [FromVersion], + [ToVersion], + [LogMessage]) +VALUES ( + "23.1", + "24.1", + "Gevolgen van de migratie van versie 23.1 naar versie 24.1:"); + +CREATE TEMP TABLE TempLogOutputDeleted +( + 'NrDeleted' INTEGER NOT NULL +); + +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].HydraulicLocationOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].ClosingStructuresOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].DuneLocationCalculationOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].GrassCoverErosionInwardsDikeHeightOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].GrassCoverErosionInwardsOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].GrassCoverErosionInwardsOvertoppingRateOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].GrassCoverErosionOutwardsWaveConditionsOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].HeightStructuresOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].StabilityPointStructuresOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].StabilityStoneCoverWaveConditionsOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].WaveImpactAsphaltCoverWaveConditionsOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].ProbabilisticPipingCalculationOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].SemiProbabilisticPipingCalculationOutputEntity; +INSERT INTO TempLogOutputDeleted SELECT COUNT() FROM [SOURCEPROJECT].MacroStabilityInwardsCalculationOutputEntity; + +INSERT INTO [LOGDATABASE].MigrationLogEntity ( + [FromVersion], + [ToVersion], + [LogMessage]) +SELECT + "23.1", + "24.1", + "* Alle berekende resultaten zijn verwijderd." +FROM TempLogOutputDeleted +WHERE [NrDeleted] > 0 +LIMIT 1; + +INSERT INTO [LOGDATABASE].MigrationLogEntity ( + [FromVersion], + [ToVersion], +[LogMessage]) +VALUES ("23.1", + "24.1", + "* Omdat alleen faalkansen op vakniveau een rol spelen in de assemblage, zijn de assemblageresultaten voor de faalmechanismen aangepast: + + De initiële faalkansen per doorsnede zijn verwijderd in het geval van de optie 'Handmatig invullen'. + + De aangescherpte faalkansen per doorsnede zijn verwijderd in het geval van de optie 'Per doorsnede' of 'Beide'. + + De assemblagemethode 'Automatisch berekenen o.b.v. slechtste doorsnede of vak' is vervangen door 'Automatisch berekenen o.b.v. slechtste vak'."); + +CREATE TEMP TABLE TempFailureMechanisms +( + 'FailureMechanismType' INTEGER NOT NULL, + 'FailureMechanismName' VARCHAR(255) NOT NULL +); + +INSERT INTO TempFailureMechanisms VALUES (1, 'Piping'); +INSERT INTO TempFailureMechanisms VALUES (2, 'Macrostabiliteit binnenwaarts'); +INSERT INTO TempFailureMechanisms VALUES (3, 'Golfklappen op asfaltbekleding'); +INSERT INTO TempFailureMechanisms VALUES (4, 'Grasbekleding erosie buitentalud'); +INSERT INTO TempFailureMechanisms VALUES (5, 'Grasbekleding afschuiven buitentalud'); +INSERT INTO TempFailureMechanisms VALUES (6, 'Grasbekleding erosie kruin en binnentalud'); +INSERT INTO TempFailureMechanisms VALUES (7, 'Stabiliteit steenzetting'); +INSERT INTO TempFailureMechanisms VALUES (8, 'Duinafslag'); +INSERT INTO TempFailureMechanisms VALUES (9, 'Hoogte kunstwerk'); +INSERT INTO TempFailureMechanisms VALUES (10, 'Betrouwbaarheid sluiting kunstwerk'); +INSERT INTO TempFailureMechanisms VALUES (11, 'Piping bij kunstwerk'); +INSERT INTO TempFailureMechanisms VALUES (12, 'Sterkte en stabiliteit puntconstructies'); +INSERT INTO TempFailureMechanisms VALUES (13, 'Microstabiliteit'); +INSERT INTO TempFailureMechanisms VALUES (14, 'Wateroverdruk bij asfaltbekleding'); +INSERT INTO TempFailureMechanisms VALUES (15, 'Grasbekleding afschuiven binnentalud'); + +CREATE TEMP TABLE TempAssessmentSectionFailureMechanism ( + [AssessmentSectionId], + [AssessmentSectionName], + [FailureMechanismId], + [FailureMechanismName] +); + +INSERT INTO TempAssessmentSectionFailureMechanism +SELECT + [AssessmentSectionEntityId], + [Name], + [FailureMechanismEntityId], + [FailureMechanismName] +FROM AssessmentSectionEntity +JOIN FailureMechanismEntity USING (AssessmentSectionEntityId) +JOIN TempFailureMechanisms USING (FailureMechanismType); + +CREATE TEMP TABLE TempChanges ( + [AssessmentSectionId], + [AssessmentSectionName], + [FailureMechanismId], + [FailureMechanismName], + [msg] +); + +INSERT INTO [LOGDATABASE].MigrationLogEntity ( + [FromVersion], + [ToVersion], +[LogMessage] +) WITH RECURSIVE FailureMechanismMessages ( + [FailureMechanismId], + [FailureMechanismName], + [AssessmentSectionId], + [AssessmentSectionName], + [msg], + [level] + ) AS ( + SELECT DISTINCT + [FailureMechanismId], + [FailureMechanismName], + [AssessmentSectionId], + [AssessmentSectionName], + NULL, + 1 + FROM TempChanges + UNION + SELECT + [FailureMechanismId], + NULL, + [AssessmentSectionId], + [AssessmentSectionName], + [msg], + 2 + FROM TempChanges + WHERE TempChanges.[FailureMechanismId] IS [FailureMechanismId] + ORDER BY [AssessmentSectionId], [FailureMechanismId] + ), + AssessmentSectionFailureMechanismMessages ( + [AssessmentSectionId], + [AssessmentSectionName], + [IsAssessmentSectionHeader], + [FailureMechanismId], + [FailureMechanismName], + [msg], + [level], + [Order] + ) AS ( + SELECT DISTINCT + [AssessmentSectionId], + [AssessmentSectionName], + 1, + NULL, + NULL, + NULL, + 1, + 0 + FROM ( + SELECT + [AssessmentSectionId], + [AssessmentSectionName] + FROM FailureMechanismMessages + WHERE [AssessmentSectionId] IS NOT NULL + ) + UNION + SELECT * + FROM ( + SELECT + [AssessmentSectionId], + NULL, + 0 AS [IsAssessmentSectionHeader], + fmm.[FailureMechanismId] AS [FailureMechanismId], + fmm.[FailureMechanismName], + [msg], + fmm.[level] AS [level], + 1 AS [Order] + FROM FailureMechanismMessages AS fmm + WHERE fmm.[AssessmentSectionId] IS [AssessmentSectionId] + ) + ORDER BY + [AssessmentSectionId], + [FailureMechanismId], + [level], + [IsAssessmentSectionHeader] DESC, + [Order] + ) +SELECT + "23.1", + "24.1", + CASE + WHEN [AssessmentSectionName] IS NOT NULL + THEN + CASE + WHEN [IsAssessmentSectionHeader] IS 1 + THEN + "* Traject: '" || [AssessmentSectionName] || "'" + ELSE + " + " || [msg] +END +ELSE + CASE + WHEN [FailureMechanismName] IS NOT NULL + THEN + " + Faalmechanisme: '" || [FailureMechanismName] || "'" + ELSE + " - " || [msg] +END +END +FROM AssessmentSectionFailureMechanismMessages; + +DROP TABLE TempFailureMechanisms; +DROP TABLE TempAssessmentSectionFailureMechanism; +DROP TABLE TempChanges; + +DROP TABLE TempLogOutputDeleted; + +INSERT INTO [LOGDATABASE].MigrationLogEntity ( + [FromVersion], + [ToVersion], + [LogMessage]) +SELECT "23.1", + "24.1", + "* Geen aanpassingen." +WHERE ( + SELECT COUNT() FROM [LOGDATABASE].MigrationLogEntity + WHERE [FromVersion] = "23.1" +) IS 1; + +DETACH LOGDATABASE; + +DETACH SOURCEPROJECT; + +PRAGMA foreign_keys = ON; \ No newline at end of file Index: Riskeer/Migration/src/Riskeer.Migration.Core/Riskeer.Migration.Core.csproj =================================================================== diff -u -r786a8396c99eedb03a0f98445f9378cb7e4b6234 -r68c67ec6bb74c35eeecbf0b95983a5c780f6d008 --- Riskeer/Migration/src/Riskeer.Migration.Core/Riskeer.Migration.Core.csproj (.../Riskeer.Migration.Core.csproj) (revision 786a8396c99eedb03a0f98445f9378cb7e4b6234) +++ Riskeer/Migration/src/Riskeer.Migration.Core/Riskeer.Migration.Core.csproj (.../Riskeer.Migration.Core.csproj) (revision 68c67ec6bb74c35eeecbf0b95983a5c780f6d008) @@ -48,8 +48,8 @@ - - + + Index: Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationIntegrationTest.cs =================================================================== diff -u -rd9119b8f4a74fb2a6f3ececeaea94f0e58513c52 -r68c67ec6bb74c35eeecbf0b95983a5c780f6d008 --- Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationIntegrationTest.cs (.../MigrationIntegrationTest.cs) (revision d9119b8f4a74fb2a6f3ececeaea94f0e58513c52) +++ Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationIntegrationTest.cs (.../MigrationIntegrationTest.cs) (revision 68c67ec6bb74c35eeecbf0b95983a5c780f6d008) @@ -185,7 +185,7 @@ yield return new FileToMigrate("Empty valid Release 19.1.risk", "21.1"); yield return new FileToMigrate("Empty valid Release 21.1.risk", "22.1"); yield return new FileToMigrate("Empty valid Release 22.1.risk", "23.1"); - yield return new FileToMigrate("Empty valid Release 23.1.risk", "23.2"); + yield return new FileToMigrate("Empty valid Release 23.1.risk", "24.1"); } private class FileToMigrate Fisheye: Tag 68c67ec6bb74c35eeecbf0b95983a5c780f6d008 refers to a dead (removed) revision in file `Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo232IntegrationTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo241IntegrationTest.cs =================================================================== diff -u --- Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo241IntegrationTest.cs (revision 0) +++ Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo241IntegrationTest.cs (revision 68c67ec6bb74c35eeecbf0b95983a5c780f6d008) @@ -0,0 +1,989 @@ +// Copyright (C) Stichting Deltares and State of the Netherlands 2024. All rights reserved. +// +// This file is part of Riskeer. +// +// Riskeer is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using Core.Common.TestUtil; +using NUnit.Framework; +using Riskeer.Migration.Core; +using Riskeer.Migration.Core.TestUtil; + +namespace Riskeer.Migration.Integration.Test +{ + public class MigrationTo241IntegrationTest + { + private const string newVersion = "24.1"; + + [Test] + [TestCaseSource(nameof(GetMigrationProjectsWithMessages))] + public void Given231Project_WhenUpgradedTo232_ThenProjectAsExpected(string fileName, IEnumerable expectedMessages) + { + // Given + string sourceFilePath = TestHelper.GetTestDataPath(TestDataPath.Riskeer.Migration.Core, + fileName); + var fromVersionedFile = new ProjectVersionedFile(sourceFilePath); + + string targetFilePath = TestHelper.GetScratchPadPath(nameof(Given231Project_WhenUpgradedTo232_ThenProjectAsExpected)); + string logFilePath = TestHelper.GetScratchPadPath(string.Concat(nameof(Given231Project_WhenUpgradedTo232_ThenProjectAsExpected), ".log")); + var migrator = new ProjectFileMigrator + { + LogPath = logFilePath + }; + + using (new FileDisposeHelper(logFilePath)) + using (new FileDisposeHelper(targetFilePath)) + { + // When + migrator.Migrate(fromVersionedFile, newVersion, targetFilePath); + + // Then + using (var reader = new MigratedDatabaseReader(targetFilePath)) + { + AssertTablesContentMigrated(reader, sourceFilePath); + + AssertAssessmentSection(reader, sourceFilePath); + + AssertGrassCoverErosionOutwardsWaveConditionsCalculation(reader, sourceFilePath); + AssertStabilityStoneCoverWaveConditionsCalculation(reader, sourceFilePath); + AssertWaveImpactAsphaltCoverWaveConditionsCalculation(reader, sourceFilePath); + + AssertClosingStructuresFailureMechanismMetaEntity(reader, sourceFilePath); + AssertDuneErosionFailureMechanismMetaEntity(reader, sourceFilePath); + AssertGrassCoverErosionInwardsFailureMechanismMetaEntity(reader, sourceFilePath); + AssertGrassCoverErosionOutwardsFailureMechanismMetaEntity(reader, sourceFilePath); + AssertHeightStructuresFailureMechanismMetaEntity(reader, sourceFilePath); + AssertStabilityStoneCoverFailureMechanismMetaEntity(reader, sourceFilePath); + AssertStabilityPointStructuresFailureMechanismMetaEntity(reader, sourceFilePath); + AssertWaveImpactAsphaltCoverFailureMechanismMetaEntity(reader, sourceFilePath); + AssertSpecificFailureMechanismMetaEntity(reader, sourceFilePath); + + AssertAdoptableFailureMechanismSectionResult(reader, sourceFilePath); + AssertNonAdoptableFailureMechanismSectionResult(reader, sourceFilePath); + + AssertVersions(reader); + AssertDatabase(reader); + + AssertHydraulicLocationOutput(reader); + AssertDuneLocationOutput(reader); + + AssertGrassCoverErosionInwardsOutput(reader); + + AssertGrassCoverErosionOutwardsOutput(reader); + AssertStabilityStoneCoverOutput(reader); + AssertWaveImpactAsphaltCoverOutput(reader); + + AssertClosingStructuresOutput(reader); + AssertHeightStructuresOutput(reader); + AssertStabilityPointStructuresOutput(reader); + + AssertMacroStabilityInwardsFailureMechanismMetaEntity(reader, sourceFilePath); + AssertMacroStabilityInwardsFailureMechanismSectionConfiguration(reader, sourceFilePath); + AssertMacroStabilityInwardsOutput(reader); + + AssertPipingFailureMechanismMetaEntity(reader, sourceFilePath); + AssertPipingFailureMechanismSectionConfiguration(reader, sourceFilePath); + AssertPipingOutput(reader); + + AssertIllustrationPointResults(reader); + } + + AssertLogDatabase(logFilePath, expectedMessages); + } + } + + private static IEnumerable GetMigrationProjectsWithMessages() + { + const string allCalculatedResultsRemovedMessage = "* Alle berekende resultaten zijn verwijderd."; + string adjustedAssemblyResultsMigrationMessage = + $"* Omdat alleen faalkansen op vakniveau een rol spelen in de assemblage, zijn de assemblageresultaten voor de faalmechanismen aangepast:{Environment.NewLine}" + + $" + De initiële faalkansen per doorsnede zijn verwijderd in het geval van de optie 'Handmatig invullen'.{Environment.NewLine}" + + $" + De aangescherpte faalkansen per doorsnede zijn verwijderd in het geval van de optie 'Per doorsnede' of 'Beide'.{Environment.NewLine}" + + " + De assemblagemethode 'Automatisch berekenen o.b.v. slechtste doorsnede of vak' is vervangen door 'Automatisch berekenen o.b.v. slechtste vak'."; + yield return new TestCaseData("MigrationTestProject231NoOutput.risk", new[] + { + adjustedAssemblyResultsMigrationMessage + }); + + yield return new TestCaseData("MigrationTestProject231VariousFailureMechanismSectionResultConfigurations.risk", new[] + { + adjustedAssemblyResultsMigrationMessage + }); + + // This file contains all configured failure mechanisms (except Dunes and MacroStabilityInwards) with output. + // The mechanisms Dunes and MacroStabilityInwards have different assessment sections, and are therefore put in different test files. + yield return new TestCaseData("MigrationTestProject231WithOutput.risk", new[] + { + allCalculatedResultsRemovedMessage, + adjustedAssemblyResultsMigrationMessage + }); + + yield return new TestCaseData("MigrationTestProject231DunesWithOutput.risk", new[] + { + allCalculatedResultsRemovedMessage, + adjustedAssemblyResultsMigrationMessage + }); + + yield return new TestCaseData("MigrationTestProject231MacroStabilityInwardsWithOutput.risk", new[] + { + allCalculatedResultsRemovedMessage, + adjustedAssemblyResultsMigrationMessage + }); + + yield return new TestCaseData("MigrationTestProject231RevetmentCalculations.risk", new[] + { + adjustedAssemblyResultsMigrationMessage + }); + } + + private static void AssertAssessmentSection(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateAssessmentSection = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.AssessmentSectionEntity " + + ") " + + "FROM AssessmentSectionEntity NEW " + + "JOIN SOURCEPROJECT.AssessmentSectionEntity OLD USING(AssessmentSectionEntityId) " + + "WHERE NEW.[ProjectEntityId] = OLD.[ProjectEntityId] " + + "AND NEW.[HydraulicLocationCalculationCollectionEntity1Id] = OLD.[HydraulicLocationCalculationCollectionEntity1Id] " + + "AND NEW.[HydraulicLocationCalculationCollectionEntity2Id] = OLD.[HydraulicLocationCalculationCollectionEntity2Id] " + + "AND NEW.[Id] IS OLD.[Id] " + + "AND NEW.[Name] IS OLD.[Name] " + + "AND NEW.[Comments] IS OLD.[Comments] " + + "AND NEW.[MaximumAllowableFloodingProbability] = OLD.[MaximumAllowableFloodingProbability] " + + "AND NEW.[SignalFloodingProbability] = OLD.[SignalFloodingProbability] " + + "AND NEW.[NormativeProbabilityType] = OLD.[NormativeProbabilityType] " + + "AND NEW.[Composition] = OLD.[Composition] " + + "AND NEW.[ReferenceLinePointXml] = OLD.[ReferenceLinePointXml]" + + "AND NEW.[AreFailureMechanismsCorrelated] = 0; " + + "DETACH SOURCEPROJECT;"; + + reader.AssertReturnedDataIsValid(validateAssessmentSection); + } + + private static void AssertTablesContentMigrated(MigratedDatabaseReader reader, string sourceFilePath) + { + string[] tables = + { + "AssessmentSectionEntity", + "BackgroundDataEntity", + "BackgroundDataMetaEntity", + "CalculationGroupEntity", + "ClosingStructureEntity", + "ClosingStructuresCalculationEntity", + "ClosingStructuresFailureMechanismMetaEntity", + "DikeProfileEntity", + "DuneErosionFailureMechanismMetaEntity", + "DuneLocationCalculationEntity", + "DuneLocationCalculationForTargetProbabilityCollectionEntity", + "DuneLocationEntity", + "FailureMechanismEntity", + "FailureMechanismFailureMechanismSectionEntity", + "FailureMechanismSectionEntity", + "ForeshoreProfileEntity", + "GrassCoverErosionInwardsCalculationEntity", + "GrassCoverErosionInwardsFailureMechanismMetaEntity", + "GrassCoverErosionOutwardsFailureMechanismMetaEntity", + "GrassCoverErosionOutwardsWaveConditionsCalculationEntity", + "HeightStructureEntity", + "HeightStructuresCalculationEntity", + "HeightStructuresFailureMechanismMetaEntity", + "HydraulicBoundaryDataEntity", + "HydraulicBoundaryDatabaseEntity", + "HydraulicLocationCalculationCollectionEntity", + "HydraulicLocationCalculationCollectionHydraulicLocationCalculationEntity", + "HydraulicLocationCalculationEntity", + "HydraulicLocationCalculationForTargetProbabilityCollectionEntity", + "HydraulicLocationCalculationForTargetProbabilityCollectionHydraulicLocationCalculationEntity", + "HydraulicLocationEntity", + "MacroStabilityInwardsCalculationEntity", + "MacroStabilityInwardsCharacteristicPointEntity", + "MacroStabilityInwardsFailureMechanismMetaEntity", + "MacroStabilityInwardsPreconsolidationStressEntity", + "MacroStabilityInwardsSoilLayerOneDEntity", + "MacroStabilityInwardsSoilLayerTwoDEntity", + "MacroStabilityInwardsSoilProfileOneDEntity", + "MacroStabilityInwardsSoilProfileTwoDEntity", + "MacroStabilityInwardsSoilProfileTwoDSoilLayerTwoDEntity", + "MacroStabilityInwardsStochasticSoilProfileEntity", + "PipingCharacteristicPointEntity", + "PipingFailureMechanismMetaEntity", + "PipingSoilLayerEntity", + "PipingSoilProfileEntity", + "PipingStochasticSoilProfileEntity", + "ProbabilisticPipingCalculationEntity", + "ProjectEntity", + "SemiProbabilisticPipingCalculationEntity", + "SpecificFailureMechanismEntity", + "SpecificFailureMechanismFailureMechanismSectionEntity", + "StabilityPointStructureEntity", + "StabilityPointStructuresCalculationEntity", + "StabilityPointStructuresFailureMechanismMetaEntity", + "StabilityStoneCoverFailureMechanismMetaEntity", + "StabilityStoneCoverWaveConditionsCalculationEntity", + "StochastEntity", + "StochasticSoilModelEntity", + "SurfaceLineEntity", + "VersionEntity", + "WaveImpactAsphaltCoverFailureMechanismMetaEntity", + "WaveImpactAsphaltCoverWaveConditionsCalculationEntity" + }; + + foreach (string table in tables) + { + string validateMigratedTable = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + $"SELECT COUNT() = (SELECT COUNT() FROM [SOURCEPROJECT].{table}) " + + $"FROM {table};" + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMigratedTable); + } + } + + private static void AssertLogDatabase(string logFilePath, IEnumerable expectedMessages) + { + using (var reader = new MigrationLogDatabaseReader(logFilePath)) + { + ReadOnlyCollection messages = reader.GetMigrationLogMessages(); + + Assert.AreEqual(expectedMessages.Count() + 1, messages.Count); + var i = 0; + MigrationLogTestHelper.AssertMigrationLogMessageEqual( + new MigrationLogMessage("23.1", newVersion, $"Gevolgen van de migratie van versie 23.1 naar versie {newVersion}:"), + messages[i++]); + + foreach (string expectedMessage in expectedMessages) + { + MigrationLogTestHelper.AssertMigrationLogMessageEqual( + new MigrationLogMessage("23.1", newVersion, $"{expectedMessage}"), + messages[i++]); + } + } + } + + private static void AssertVersions(MigratedDatabaseReader reader) + { + const string validateVersion = + "SELECT COUNT() = 1 " + + "FROM [VersionEntity] " + + "WHERE [Version] = \"24.1\";"; + reader.AssertReturnedDataIsValid(validateVersion); + } + + private static void AssertDatabase(MigratedDatabaseReader reader) + { + const string validateForeignKeys = + "PRAGMA foreign_keys;"; + reader.AssertReturnedDataIsValid(validateForeignKeys); + } + + # region Revetment + + private static void AssertGrassCoverErosionOutwardsWaveConditionsCalculation(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateCalculation = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.GrassCoverErosionOutwardsWaveConditionsCalculationEntity " + + ") " + + "FROM GrassCoverErosionOutwardsWaveConditionsCalculationEntity NEW " + + "JOIN SOURCEPROJECT.GrassCoverErosionOutwardsWaveConditionsCalculationEntity OLD USING(GrassCoverErosionOutwardsWaveConditionsCalculationEntityId) " + + "WHERE NEW.[CalculationGroupEntityId] = OLD.[CalculationGroupEntityId] " + + "AND NEW.[ForeshoreProfileEntityId] IS OLD.[ForeshoreProfileEntityId] " + + "AND NEW.[HydraulicLocationEntityId] IS OLD.[HydraulicLocationEntityId] " + + "AND NEW.[HydraulicLocationCalculationForTargetProbabilityCollectionEntityId] IS OLD.[HydraulicLocationCalculationForTargetProbabilityCollectionEntityId] " + + "AND NEW.\"Order\" = OLD.\"Order\" " + + "AND NEW.[Name] IS OLD.[Name] " + + "AND NEW.[Comments] IS OLD.[Comments] " + + "AND NEW.[UseBreakWater] = OLD.[UseBreakWater] " + + "AND NEW.[BreakWaterType] = OLD.[BreakWaterType] " + + "AND NEW.[BreakWaterHeight] IS OLD.[BreakWaterHeight] " + + "AND NEW.[UseForeshore] = OLD.[UseForeshore] " + + "AND NEW.[Orientation] IS OLD.[Orientation] " + + "AND NEW.[UpperBoundaryRevetment] IS OLD.[UpperBoundaryRevetment] " + + "AND NEW.[LowerBoundaryRevetment] IS OLD.[LowerBoundaryRevetment] " + + "AND NEW.[UpperBoundaryWaterLevels] IS OLD.[UpperBoundaryWaterLevels] " + + "AND NEW.[LowerBoundaryWaterLevels] IS OLD.[LowerBoundaryWaterLevels] " + + "AND NEW.[CalculationType] = OLD.[CalculationType] " + + "AND NEW.[WaterLevelType] = OLD.[WaterLevelType];" + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateCalculation); + + AssertWaveConditionsStepSize(reader, sourceFilePath, "GrassCoverErosionOutwardsWaveConditionsCalculationEntity"); + } + + private static void AssertStabilityStoneCoverWaveConditionsCalculation(MigratedDatabaseReader reader, + string sourceFilePath) + { + string validateCalculation = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.StabilityStoneCoverWaveConditionsCalculationEntity " + + ") " + + "FROM StabilityStoneCoverWaveConditionsCalculationEntity NEW " + + "JOIN SOURCEPROJECT.StabilityStoneCoverWaveConditionsCalculationEntity OLD USING(StabilityStoneCoverWaveConditionsCalculationEntityId) " + + "WHERE NEW.[CalculationGroupEntityId] = OLD.[CalculationGroupEntityId] " + + "AND NEW.[ForeshoreProfileEntityId] IS OLD.[ForeshoreProfileEntityId] " + + "AND NEW.[HydraulicLocationEntityId] IS OLD.[HydraulicLocationEntityId] " + + "AND NEW.[HydraulicLocationCalculationForTargetProbabilityCollectionEntityId] IS OLD.[HydraulicLocationCalculationForTargetProbabilityCollectionEntityId] " + + "AND NEW.\"Order\" = OLD.\"Order\" " + + "AND NEW.[Name] IS OLD.[Name] " + + "AND NEW.[Comments] IS OLD.[Comments] " + + "AND NEW.[UseBreakWater] = OLD.[UseBreakWater] " + + "AND NEW.[BreakWaterType] = OLD.[BreakWaterType] " + + "AND NEW.[BreakWaterHeight] IS OLD.[BreakWaterHeight] " + + "AND NEW.[UseForeshore] = OLD.[UseForeshore] " + + "AND NEW.[Orientation] IS OLD.[Orientation] " + + "AND NEW.[UpperBoundaryRevetment] IS OLD.[UpperBoundaryRevetment] " + + "AND NEW.[LowerBoundaryRevetment] IS OLD.[LowerBoundaryRevetment] " + + "AND NEW.[UpperBoundaryWaterLevels] IS OLD.[UpperBoundaryWaterLevels] " + + "AND NEW.[LowerBoundaryWaterLevels] IS OLD.[LowerBoundaryWaterLevels] " + + "AND NEW.[CalculationType] = OLD.[CalculationType] " + + "AND NEW.[WaterLevelType] = OLD.[WaterLevelType];" + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateCalculation); + + AssertWaveConditionsStepSize(reader, sourceFilePath, "StabilityStoneCoverWaveConditionsCalculationEntity"); + } + + private static void AssertWaveImpactAsphaltCoverWaveConditionsCalculation(MigratedDatabaseReader reader, + string sourceFilePath) + { + string validateCalculation = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.WaveImpactAsphaltCoverWaveConditionsCalculationEntity " + + ") " + + "FROM WaveImpactAsphaltCoverWaveConditionsCalculationEntity NEW " + + "JOIN SOURCEPROJECT.WaveImpactAsphaltCoverWaveConditionsCalculationEntity OLD USING(WaveImpactAsphaltCoverWaveConditionsCalculationEntityId) " + + "WHERE NEW.[CalculationGroupEntityId] = OLD.[CalculationGroupEntityId] " + + "AND NEW.[ForeshoreProfileEntityId] IS OLD.[ForeshoreProfileEntityId] " + + "AND NEW.[HydraulicLocationEntityId] IS OLD.[HydraulicLocationEntityId] " + + "AND NEW.[HydraulicLocationCalculationForTargetProbabilityCollectionEntityId] IS OLD.[HydraulicLocationCalculationForTargetProbabilityCollectionEntityId] " + + "AND NEW.\"Order\" = OLD.\"Order\" " + + "AND NEW.[Name] IS OLD.[Name] " + + "AND NEW.[Comments] IS OLD.[Comments] " + + "AND NEW.[UseBreakWater] = OLD.[UseBreakWater] " + + "AND NEW.[BreakWaterType] = OLD.[BreakWaterType] " + + "AND NEW.[BreakWaterHeight] IS OLD.[BreakWaterHeight] " + + "AND NEW.[UseForeshore] = OLD.[UseForeshore] " + + "AND NEW.[Orientation] IS OLD.[Orientation] " + + "AND NEW.[UpperBoundaryRevetment] IS OLD.[UpperBoundaryRevetment] " + + "AND NEW.[LowerBoundaryRevetment] IS OLD.[LowerBoundaryRevetment] " + + "AND NEW.[UpperBoundaryWaterLevels] IS OLD.[UpperBoundaryWaterLevels] " + + "AND NEW.[LowerBoundaryWaterLevels] IS OLD.[LowerBoundaryWaterLevels] " + + "AND NEW.[WaterLevelType] = OLD.[WaterLevelType];" + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateCalculation); + + AssertWaveConditionsStepSize(reader, sourceFilePath, "WaveImpactAsphaltCoverWaveConditionsCalculationEntity"); + } + + private static void AssertWaveConditionsStepSize(MigratedDatabaseReader reader, + string sourceFilePath, + string calculationEntityName) + { + string validateStepSize = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCE; " + + "SELECT " + + "COALESCE (SUM([IsInvalid]), 0) = 0 " + + "FROM ( " + + "SELECT " + + "CASE " + + "WHEN OLD.[StepSize] = 1 AND NEW.[StepSize] = 0.5 THEN 0 " + + "WHEN OLD.[StepSize] = 2 AND NEW.[StepSize] = 1.0 THEN 0 " + + "WHEN OLD.[StepSize] = 3 AND NEW.[StepSize] = 2.0 THEN 0 " + + "ELSE 1 " + + "END AS [IsInvalid] " + + $"FROM {calculationEntityName} NEW " + + $"JOIN SOURCE.{calculationEntityName} OLD USING({calculationEntityName}Id)" + + "); " + + "DETACH DATABASE SOURCE;"; + reader.AssertReturnedDataIsValid(validateStepSize); + } + + #endregion + + # region Calculation outputs + + private static void AssertHydraulicLocationOutput(MigratedDatabaseReader reader) + { + const string validateOutput = + "SELECT COUNT() = 0 " + + "FROM [HydraulicLocationOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateOutput); + } + + private static void AssertDuneLocationOutput(MigratedDatabaseReader reader) + { + const string validateOutput = + "SELECT COUNT() = 0 " + + "FROM [DuneLocationCalculationOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateOutput); + } + + private static void AssertGrassCoverErosionInwardsOutput(MigratedDatabaseReader reader) + { + const string validateOutput = + "SELECT COUNT() = 0 " + + "FROM [GrassCoverErosionInwardsOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateOutput); + + const string validateDikeHeightOutput = + "SELECT COUNT() = 0 " + + "FROM [GrassCoverErosionInwardsDikeHeightOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateDikeHeightOutput); + + const string validateOvertoppingRateOutput = + "SELECT COUNT() = 0 " + + "FROM [GrassCoverErosionInwardsOvertoppingRateOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateOvertoppingRateOutput); + } + + private static void AssertGrassCoverErosionOutwardsOutput(MigratedDatabaseReader reader) + { + const string validateOutput = + "SELECT COUNT() = 0 " + + "FROM [GrassCoverErosionOutwardsWaveConditionsOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateOutput); + } + + private static void AssertStabilityStoneCoverOutput(MigratedDatabaseReader reader) + { + const string validateOutput = + "SELECT COUNT() = 0 " + + "FROM [StabilityStoneCoverWaveConditionsOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateOutput); + } + + private static void AssertWaveImpactAsphaltCoverOutput(MigratedDatabaseReader reader) + { + const string validateOutput = + "SELECT COUNT() = 0 " + + "FROM [WaveImpactAsphaltCoverWaveConditionsOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateOutput); + } + + private static void AssertClosingStructuresOutput(MigratedDatabaseReader reader) + { + const string validateOutput = + "SELECT COUNT() = 0 " + + "FROM [ClosingStructuresOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateOutput); + } + + private static void AssertHeightStructuresOutput(MigratedDatabaseReader reader) + { + const string validateOutput = + "SELECT COUNT() = 0 " + + "FROM [HeightStructuresOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateOutput); + } + + private static void AssertStabilityPointStructuresOutput(MigratedDatabaseReader reader) + { + const string validateOutput = + "SELECT COUNT() = 0 " + + "FROM [StabilityPointStructuresOutputEntity]; "; + reader.AssertReturnedDataIsValid(validateOutput); + } + + private static void AssertMacroStabilityInwardsOutput(MigratedDatabaseReader reader) + { + const string validateMacroStabilityInwardsOutput = + "SELECT COUNT() = 0 " + + "FROM MacroStabilityInwardsCalculationOutputEntity; "; + + reader.AssertReturnedDataIsValid(validateMacroStabilityInwardsOutput); + } + + private static void AssertPipingOutput(MigratedDatabaseReader reader) + { + const string validateProbabilisticCalculationOutput = + "SELECT COUNT() = 0 " + + "FROM ProbabilisticPipingCalculationOutputEntity;" + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateProbabilisticCalculationOutput); + + const string validateSemiProbabilisticOutput = + "SELECT COUNT() = 0 " + + "FROM SemiProbabilisticPipingCalculationOutputEntity; "; + reader.AssertReturnedDataIsValid(validateSemiProbabilisticOutput); + } + + private static void AssertIllustrationPointResults(MigratedDatabaseReader reader) + { + const string validateFaultTreeIllustrationPoint = + "SELECT COUNT() = 0 " + + "FROM [FaultTreeIllustrationPointEntity]; "; + reader.AssertReturnedDataIsValid(validateFaultTreeIllustrationPoint); + + const string validateFaultTreeIllustrationPointStochast = + "SELECT COUNT() = 0 " + + "FROM [FaultTreeIllustrationPointStochastEntity]; "; + reader.AssertReturnedDataIsValid(validateFaultTreeIllustrationPointStochast); + + const string validateFaultTreeSubmechanismIllustrationPoint = + "SELECT COUNT() = 0 " + + "FROM [FaultTreeSubmechanismIllustrationPointEntity]; "; + reader.AssertReturnedDataIsValid(validateFaultTreeSubmechanismIllustrationPoint); + + const string validateGeneralResultFaultTreeIllustrationPoint = + "SELECT COUNT() = 0 " + + "FROM [GeneralResultFaultTreeIllustrationPointEntity]; "; + reader.AssertReturnedDataIsValid(validateGeneralResultFaultTreeIllustrationPoint); + + const string validateGeneralResultFaultTreeIllustrationPointStochast = + "SELECT COUNT() = 0 " + + "FROM [GeneralResultFaultTreeIllustrationPointStochastEntity]; "; + reader.AssertReturnedDataIsValid(validateGeneralResultFaultTreeIllustrationPointStochast); + + const string validateGeneralResultSubMechanismIllustrationPoint = + "SELECT COUNT() = 0 " + + "FROM [GeneralResultSubMechanismIllustrationPointEntity]; "; + reader.AssertReturnedDataIsValid(validateGeneralResultSubMechanismIllustrationPoint); + + const string validateGeneralResultSubMechanismIllustrationPointStochast = + "SELECT COUNT() = 0 " + + "FROM [GeneralResultSubMechanismIllustrationPointStochastEntity]; "; + reader.AssertReturnedDataIsValid(validateGeneralResultSubMechanismIllustrationPointStochast); + + const string validateIllustrationPointResult = + "SELECT COUNT() = 0 " + + "FROM [IllustrationPointResultEntity]; "; + reader.AssertReturnedDataIsValid(validateIllustrationPointResult); + + const string validateSubMechanismIllustrationPoint = + "SELECT COUNT() = 0 " + + "FROM [SubMechanismIllustrationPointEntity]; "; + reader.AssertReturnedDataIsValid(validateSubMechanismIllustrationPoint); + + const string validateSubMechanismIllustrationPointStochast = + "SELECT COUNT() = 0 " + + "FROM [SubMechanismIllustrationPointStochastEntity]; "; + reader.AssertReturnedDataIsValid(validateSubMechanismIllustrationPointStochast); + + const string validateTopLevelFaultTreeIllustrationPoint = + "SELECT COUNT() = 0 " + + "FROM [TopLevelFaultTreeIllustrationPointEntity]; "; + reader.AssertReturnedDataIsValid(validateTopLevelFaultTreeIllustrationPoint); + + const string validateTopLevelSubMechanismIllustrationPoint = + "SELECT COUNT() = 0 " + + "FROM [TopLevelSubMechanismIllustrationPointEntity]; "; + reader.AssertReturnedDataIsValid(validateTopLevelSubMechanismIllustrationPoint); + } + + #endregion + + #region Failure mechanisms meta data + + private static void AssertClosingStructuresFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.ClosingStructuresFailureMechanismMetaEntity " + + ") " + + "FROM ClosingStructuresFailureMechanismMetaEntity NEW " + + "JOIN SOURCEPROJECT.ClosingStructuresFailureMechanismMetaEntity OLD USING(ClosingStructuresFailureMechanismMetaEntityId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId] " + + "AND NEW.[ClosingStructureCollectionSourcePath] IS OLD.[ClosingStructureCollectionSourcePath] " + + "AND NEW.[ForeshoreProfileCollectionSourcePath] IS OLD.[ForeshoreProfileCollectionSourcePath];" + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + private static void AssertDuneErosionFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.DuneErosionFailureMechanismMetaEntity " + + ") " + + "FROM DuneErosionFailureMechanismMetaEntity NEW " + + "JOIN SOURCEPROJECT.DuneErosionFailureMechanismMetaEntity OLD USING(DuneErosionFailureMechanismMetaEntityId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + private static void AssertGrassCoverErosionInwardsFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.GrassCoverErosionInwardsFailureMechanismMetaEntity " + + ") " + + "FROM GrassCoverErosionInwardsFailureMechanismMetaEntity NEW " + + "JOIN SOURCEPROJECT.GrassCoverErosionInwardsFailureMechanismMetaEntity OLD USING(GrassCoverErosionInwardsFailureMechanismMetaEntityId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId] " + + "AND NEW.[DikeProfileCollectionSourcePath] IS OLD.[DikeProfileCollectionSourcePath]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + private static void AssertGrassCoverErosionOutwardsFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.GrassCoverErosionOutwardsFailureMechanismMetaEntity " + + ") " + + "FROM GrassCoverErosionOutwardsFailureMechanismMetaEntity NEW " + + "JOIN SOURCEPROJECT.GrassCoverErosionOutwardsFailureMechanismMetaEntity OLD USING(GrassCoverErosionOutwardsFailureMechanismMetaEntityId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId] " + + "AND NEW.[ForeshoreProfileCollectionSourcePath] IS OLD.[ForeshoreProfileCollectionSourcePath]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + private static void AssertHeightStructuresFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.HeightStructuresFailureMechanismMetaEntity " + + ") " + + "FROM HeightStructuresFailureMechanismMetaEntity NEW " + + "JOIN SOURCEPROJECT.HeightStructuresFailureMechanismMetaEntity OLD USING(HeightStructuresFailureMechanismMetaEntityId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId] " + + "AND NEW.[HeightStructureCollectionSourcePath] IS OLD.[HeightStructureCollectionSourcePath] " + + "AND NEW.[ForeshoreProfileCollectionSourcePath] IS OLD.[ForeshoreProfileCollectionSourcePath];" + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + private static void AssertStabilityPointStructuresFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.StabilityPointStructuresFailureMechanismMetaEntity " + + ") " + + "FROM StabilityPointStructuresFailureMechanismMetaEntity NEW " + + "JOIN SOURCEPROJECT.StabilityPointStructuresFailureMechanismMetaEntity OLD USING(StabilityPointStructuresFailureMechanismMetaEntityId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId] " + + "AND NEW.[StabilityPointStructureCollectionSourcePath] IS OLD.[StabilityPointStructureCollectionSourcePath] " + + "AND NEW.[ForeshoreProfileCollectionSourcePath] IS OLD.[ForeshoreProfileCollectionSourcePath];" + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + private static void AssertStabilityStoneCoverFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.StabilityStoneCoverFailureMechanismMetaEntity " + + ") " + + "FROM StabilityStoneCoverFailureMechanismMetaEntity NEW " + + "JOIN SOURCEPROJECT.StabilityStoneCoverFailureMechanismMetaEntity OLD USING(StabilityStoneCoverFailureMechanismMetaEntityId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId] " + + "AND NEW.[ForeshoreProfileCollectionSourcePath] IS OLD.[ForeshoreProfileCollectionSourcePath]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + private static void AssertWaveImpactAsphaltCoverFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.WaveImpactAsphaltCoverFailureMechanismMetaEntity " + + ") " + + "FROM WaveImpactAsphaltCoverFailureMechanismMetaEntity NEW " + + "JOIN SOURCEPROJECT.WaveImpactAsphaltCoverFailureMechanismMetaEntity OLD USING(WaveImpactAsphaltCoverFailureMechanismMetaEntityId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId] " + + "AND NEW.[ForeshoreProfileCollectionSourcePath] IS OLD.[ForeshoreProfileCollectionSourcePath]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + private static void AssertSpecificFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.SpecificFailureMechanismEntity " + + ") " + + "FROM SpecificFailureMechanismEntity NEW " + + "JOIN SOURCEPROJECT.SpecificFailureMechanismEntity OLD USING(SpecificFailureMechanismEntityId) " + + "WHERE NEW.[AssessmentSectionEntityId] = OLD.[AssessmentSectionEntityId] " + + "AND NEW.[Name] IS OLD.[Name] " + + "AND NEW.[Code] IS OLD.[Code] " + + "AND NEW.\"Order\" = OLD.\"Order\" " + + "AND NEW.[InAssembly] = OLD.[InAssembly] " + + "AND NEW.[FailureMechanismSectionCollectionSourcePath] IS OLD.[FailureMechanismSectionCollectionSourcePath] " + + "AND NEW.[InAssemblyInputComments] IS OLD.[InAssemblyInputComments] " + + "AND NEW.[InAssemblyOutputComments] IS OLD.[InAssemblyOutputComments] " + + "AND NEW.[NotInAssemblyComments] IS OLD.[NotInAssemblyComments] " + + "AND NEW.[FailureMechanismAssemblyResultProbabilityResultType] = OLD.[FailureMechanismAssemblyResultProbabilityResultType] " + + "AND NEW.[FailureMechanismAssemblyResultManualFailureMechanismAssemblyProbability] IS OLD.[FailureMechanismAssemblyResultManualFailureMechanismAssemblyProbability]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + #endregion + + #region Failure mechanism section results + + private static void AssertAdoptableFailureMechanismSectionResult(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateNrOfSectionResults = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "( " + + "SELECT SUM(count) " + + "FROM " + + "( " + + "SELECT COUNT() as count " + + "FROM SOURCEPROJECT.AdoptableFailureMechanismSectionResultEntity " + + "UNION " + + "SELECT COUNT() as count " + + "FROM SOURCEPROJECT.AdoptableWithProfileProbabilityFailureMechanismSectionResultEntity " + + ")" + + ")" + + "FROM AdoptableFailureMechanismSectionResultEntity;" + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateNrOfSectionResults); + + string validateExistingFailureMechanismSectionResults = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.AdoptableFailureMechanismSectionResultEntity " + + ")" + + "FROM AdoptableFailureMechanismSectionResultEntity NEW " + + "JOIN SOURCEPROJECT.AdoptableFailureMechanismSectionResultEntity OLD USING(AdoptableFailureMechanismSectionResultEntityId) " + + "WHERE NEW.[FailureMechanismSectionEntityId] = OLD.[FailureMechanismSectionEntityId] " + + "AND NEW.[IsRelevant] = OLD.[IsRelevant] " + + "AND NEW.[InitialFailureMechanismResultType] = OLD.[InitialFailureMechanismResultType] " + + "AND NEW.[ManualInitialFailureMechanismResultSectionProbability] IS OLD.[ManualInitialFailureMechanismResultSectionProbability] " + + "AND NEW.[FurtherAnalysisType] = OLD.[FurtherAnalysisType] " + + "AND NEW.[RefinedSectionProbability] IS OLD.[RefinedSectionProbability]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateExistingFailureMechanismSectionResults); + + string validateMigratedAdoptableWithProfileProbabilityFailureMechanismSectionResults = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.AdoptableWithProfileProbabilityFailureMechanismSectionResultEntity " + + ")" + + "FROM AdoptableFailureMechanismSectionResultEntity NEW " + + "JOIN SOURCEPROJECT.AdoptableWithProfileProbabilityFailureMechanismSectionResultEntity OLD USING(FailureMechanismSectionEntityId) " + + "JOIN ( " + + "SELECT " + + "FailureMechanismSectionEntityId, " + + "CASE " + + "WHEN [ProbabilityRefinementType] = 2 OR [ProbabilityRefinementType] = 3 " + + "THEN [RefinedSectionProbability] " + + "WHEN [ProbabilityRefinementType] = 1 " + + "THEN NULL " + + "END AS ExpectedRefinedSectionProbability " + + "FROM SOURCEPROJECT.AdoptableWithProfileProbabilityFailureMechanismSectionResultEntity" + + ") AS ofmsr USING(FailureMechanismSectionEntityId)" + + "WHERE NEW.[FailureMechanismSectionEntityId] = OLD.[FailureMechanismSectionEntityId] " + + "AND NEW.[IsRelevant] = OLD.[IsRelevant] " + + "AND NEW.[InitialFailureMechanismResultType] = OLD.[InitialFailureMechanismResultType] " + + "AND NEW.[ManualInitialFailureMechanismResultSectionProbability] IS OLD.[ManualInitialFailureMechanismResultSectionProbability] " + + "AND NEW.[FurtherAnalysisType] = OLD.[FurtherAnalysisType] " + + "AND NEW.[RefinedSectionProbability] IS ofmsr.[ExpectedRefinedSectionProbability]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMigratedAdoptableWithProfileProbabilityFailureMechanismSectionResults); + } + + private static void AssertNonAdoptableFailureMechanismSectionResult(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateNrOfSectionResults = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "( " + + "SELECT SUM(count) " + + "FROM " + + "( " + + "SELECT COUNT() as count " + + "FROM SOURCEPROJECT.NonAdoptableFailureMechanismSectionResultEntity " + + "UNION " + + "SELECT COUNT() as count " + + "FROM SOURCEPROJECT.NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity " + + ")" + + ")" + + "FROM NonAdoptableFailureMechanismSectionResultEntity;" + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateNrOfSectionResults); + + string validateExistingFailureMechanismSectionResults = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.NonAdoptableFailureMechanismSectionResultEntity " + + ")" + + "FROM NonAdoptableFailureMechanismSectionResultEntity NEW " + + "JOIN SOURCEPROJECT.NonAdoptableFailureMechanismSectionResultEntity OLD USING(NonAdoptableFailureMechanismSectionResultEntityId) " + + "WHERE NEW.[FailureMechanismSectionEntityId] = OLD.[FailureMechanismSectionEntityId] " + + "AND NEW.[IsRelevant] = OLD.[IsRelevant] " + + "AND NEW.[InitialFailureMechanismResultType] = OLD.[InitialFailureMechanismResultType] " + + "AND NEW.[ManualInitialFailureMechanismResultSectionProbability] IS OLD.[ManualInitialFailureMechanismResultSectionProbability] " + + "AND NEW.[FurtherAnalysisType] = OLD.[FurtherAnalysisType] " + + "AND NEW.[RefinedSectionProbability] IS OLD.[RefinedSectionProbability]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateExistingFailureMechanismSectionResults); + + string validateMigratedNonAdoptableWithProfileProbabilityFailureMechanismSectionResults = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity " + + ")" + + "FROM NonAdoptableFailureMechanismSectionResultEntity NEW " + + "JOIN SOURCEPROJECT.NonAdoptableWithProfileProbabilityFailureMechanismSectionResultEntity OLD USING(FailureMechanismSectionEntityId) " + + "WHERE NEW.[FailureMechanismSectionEntityId] = OLD.[FailureMechanismSectionEntityId] " + + "AND NEW.[IsRelevant] = OLD.[IsRelevant] " + + "AND NEW.[InitialFailureMechanismResultType] = OLD.[InitialFailureMechanismResultType] " + + "AND NEW.[ManualInitialFailureMechanismResultSectionProbability] IS OLD.[ManualInitialFailureMechanismResultSectionProbability] " + + "AND NEW.[FurtherAnalysisType] = OLD.[FurtherAnalysisType] " + + "AND NEW.[RefinedSectionProbability] IS OLD.[RefinedSectionProbability]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMigratedNonAdoptableWithProfileProbabilityFailureMechanismSectionResults); + } + + #endregion + + #region Piping + + private static void AssertPipingFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.PipingFailureMechanismMetaEntity " + + ") " + + "FROM PipingFailureMechanismMetaEntity NEW " + + "JOIN SOURCEPROJECT.PipingFailureMechanismMetaEntity OLD USING(PipingFailureMechanismMetaEntityId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId] " + + "AND NEW.[WaterVolumetricWeight] = OLD.[WaterVolumetricWeight] " + + "AND NEW.[StochasticSoilModelCollectionSourcePath] IS OLD.[StochasticSoilModelCollectionSourcePath] " + + "AND NEW.[SurfaceLineCollectionSourcePath] IS OLD.[SurfaceLineCollectionSourcePath] " + + "AND NEW.[ScenarioConfigurationType] = OLD.[PipingScenarioConfigurationType]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + private static void AssertPipingFailureMechanismSectionConfiguration(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.PipingScenarioConfigurationPerFailureMechanismSectionEntity " + + ") " + + "FROM PipingFailureMechanismSectionConfigurationEntity NEW " + + "JOIN SOURCEPROJECT.PipingScenarioConfigurationPerFailureMechanismSectionEntity OLD " + + "WHERE NEW.[PipingFailureMechanismSectionConfigurationEntityId] = OLD.[PipingScenarioConfigurationPerFailureMechanismSectionEntityId] " + + "AND NEW.[FailureMechanismSectionEntityId] = OLD.[FailureMechanismSectionEntityId] " + + "AND NEW.[ScenarioConfigurationType] = OLD.[PipingScenarioConfigurationPerFailureMechanismSectionType] " + + "AND NEW.[A] = 1; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + #endregion + + #region MacroStabilityInwards + + private static void AssertMacroStabilityInwardsFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.MacroStabilityInwardsFailureMechanismMetaEntity " + + ") " + + "FROM MacroStabilityInwardsFailureMechanismMetaEntity NEW " + + "JOIN SOURCEPROJECT.MacroStabilityInwardsFailureMechanismMetaEntity OLD USING(MacroStabilityInwardsFailureMechanismMetaEntityId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId] " + + "AND NEW.[StochasticSoilModelCollectionSourcePath] IS OLD.[StochasticSoilModelCollectionSourcePath] " + + "AND NEW.[SurfaceLineCollectionSourcePath] IS OLD.[SurfaceLineCollectionSourcePath]; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + private static void AssertMacroStabilityInwardsFailureMechanismSectionConfiguration(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateMetaEntity = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.FailureMechanismEntity " + + "JOIN SOURCEPROJECT.FailureMechanismFailureMechanismSectionEntity USING(FailureMechanismEntityId) " + + "WHERE FailureMechanismType = 2 " + + ") " + + "FROM FailureMechanismEntity " + + "JOIN FailureMechanismFailureMechanismSectionEntity USING(FailureMechanismEntityId) " + + "JOIN MacroStabilityInwardsFailureMechanismSectionConfigurationEntity NEW USING(FailureMechanismSectionEntityId) " + + "WHERE FailureMechanismType = 2 " + + "AND NEW.[A] = 1; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateMetaEntity); + } + + #endregion + } +} \ No newline at end of file Index: Riskeer/Migration/test/Riskeer.Migration.Test/ProjectMigratorTest.cs =================================================================== diff -u -rd9119b8f4a74fb2a6f3ececeaea94f0e58513c52 -r68c67ec6bb74c35eeecbf0b95983a5c780f6d008 --- Riskeer/Migration/test/Riskeer.Migration.Test/ProjectMigratorTest.cs (.../ProjectMigratorTest.cs) (revision d9119b8f4a74fb2a6f3ececeaea94f0e58513c52) +++ Riskeer/Migration/test/Riskeer.Migration.Test/ProjectMigratorTest.cs (.../ProjectMigratorTest.cs) (revision 68c67ec6bb74c35eeecbf0b95983a5c780f6d008) @@ -605,7 +605,7 @@ migrationLog.AppendLine(" - De automatisch berekende faalkans van het faalmechanisme is verwijderd."); migrationLog.AppendLine(" + Faalmechanisme: 'Technische innovaties'"); migrationLog.AppendLine(" - De automatisch berekende faalkans van het faalmechanisme is verwijderd."); - migrationLog.AppendLine("Gevolgen van de migratie van versie 23.1 naar versie 23.2:"); + migrationLog.AppendLine("Gevolgen van de migratie van versie 23.1 naar versie 24.1:"); migrationLog.AppendLine("* Omdat alleen faalkansen op vakniveau een rol spelen in de assemblage, zijn de assemblageresultaten voor de faalmechanismen aangepast:"); migrationLog.AppendLine(" + De initiële faalkansen per doorsnede zijn verwijderd in het geval van de optie 'Handmatig invullen'."); migrationLog.AppendLine(" + De aangescherpte faalkansen per doorsnede zijn verwijderd in het geval van de optie 'Per doorsnede' of 'Beide'.");