Index: Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_18.1_19.1.sql =================================================================== diff -u -r4172a43eb4edadadb77bbc26301cefc6ea5478eb -r25b6fd2d98971ab73ad67452aa3fe2bb96f6137e --- Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_18.1_19.1.sql (.../Migration_18.1_19.1.sql) (revision 4172a43eb4edadadb77bbc26301cefc6ea5478eb) +++ Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_18.1_19.1.sql (.../Migration_18.1_19.1.sql) (revision 25b6fd2d98971ab73ad67452aa3fe2bb96f6137e) @@ -1073,6 +1073,135 @@ FROM SOURCEPROJECT.AssessmentSectionEntity WHERE [HydraulicDatabaseLocation] IS NOT NULL; +/* + Delete all output entries that were calculated with invalid dikeprofiles or foreshoreprofiles + Deletion is performed at this stage to prevent orphaned entries in the database after migration +*/ +DELETE +FROM GrassCoverErosionInwardsOutputEntity +WHERE GrassCoverErosionInwardsOutputEntityId IN +( + SELECT + [GrassCoverErosionInwardsOutputEntityId] + FROM [SOURCEPROJECT].GrassCoverErosionInwardsOutputEntity + JOIN [SOURCEPROJECT].GrassCoverErosionInwardsCalculationEntity USING(GrassCoverErosionInwardsCalculationEntityId) + JOIN [SOURCEPROJECT].DikeProfileEntity USING(DikeProfileEntityId) + WHERE(LENGTH(DikeGeometryXml) - LENGTH(REPLACE(REPLACE(DikeGeometryXml, '', ''), '', ''))) / + (LENGTH('') + LENGTH('')) < 2 + OR (LENGTH(ForeshoreXML) - LENGTH(REPLACE(REPLACE(ForeshoreXML, '', ''), '', ''))) + / (LENGTH('') + LENGTH('')) = 1 +); + +DELETE +FROM GrassCoverErosionInwardsDikeHeightOutputEntity +WHERE GrassCoverErosionInwardsDikeHeightOutputEntityId IN +( + SELECT + [GrassCoverErosionInwardsDikeHeightOutputEntityId] + FROM [SOURCEPROJECT].GrassCoverErosionInwardsDikeHeightOutputEntity + JOIN [SOURCEPROJECT].GrassCoverErosionInwardsOutputEntity USING(GrassCoverErosionInwardsOutputEntityId) + JOIN [SOURCEPROJECT].GrassCoverErosionInwardsCalculationEntity USING(GrassCoverErosionInwardsCalculationEntityId) + JOIN [SOURCEPROJECT].DikeProfileEntity USING(DikeProfileEntityId) + WHERE(LENGTH(DikeGeometryXml) - LENGTH(REPLACE(REPLACE(DikeGeometryXml, '', ''), '', ''))) / + (LENGTH('') + LENGTH('')) < 2 + OR (LENGTH(ForeshoreXML) - LENGTH(REPLACE(REPLACE(ForeshoreXML, '', ''), '', ''))) + / (LENGTH('') + LENGTH('')) = 1 +); + +DELETE +FROM GrassCoverErosionInwardsOvertoppingRateOutputEntity +WHERE GrassCoverErosionInwardsOvertoppingRateOutputEntityId IN +( + SELECT + [GrassCoverErosionInwardsOvertoppingRateOutputEntityId] + FROM [SOURCEPROJECT].GrassCoverErosionInwardsOvertoppingRateOutputEntity + JOIN [SOURCEPROJECT].GrassCoverErosionInwardsOutputEntity USING(GrassCoverErosionInwardsOutputEntityId) + JOIN [SOURCEPROJECT].GrassCoverErosionInwardsCalculationEntity USING(GrassCoverErosionInwardsCalculationEntityId) + JOIN [SOURCEPROJECT].DikeProfileEntity USING(DikeProfileEntityId) + WHERE(LENGTH(DikeGeometryXml) - LENGTH(REPLACE(REPLACE(DikeGeometryXml, '', ''), '', ''))) / + (LENGTH('') + LENGTH('')) < 2 + OR (LENGTH(ForeshoreXML) - LENGTH(REPLACE(REPLACE(ForeshoreXML, '', ''), '', ''))) + / (LENGTH('') + LENGTH('')) = 1 +); + +DELETE +FROM ClosingStructuresOutputEntity +WHERE ClosingStructuresOutputEntityId IN +( + SELECT + [ClosingStructuresOutputEntityId] + FROM [SOURCEPROJECT].ClosingStructuresOutputEntity + JOIN [SOURCEPROJECT].ClosingStructuresCalculationEntity USING(ClosingStructuresCalculationEntityId) + JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) + WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / + (LENGTH('') + LENGTH('')) = 1 +); + +DELETE +FROM HeightStructuresOutputEntity +WHERE HeightStructuresOutputEntityId IN +( + SELECT + [HeightStructuresOutputEntityId] + FROM [SOURCEPROJECT].HeightStructuresOutputEntity + JOIN [SOURCEPROJECT].HeightStructuresCalculationEntity USING(HeightStructuresCalculationEntityId) + JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) + WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / + (LENGTH('') + LENGTH('')) = 1 +); + +DELETE +FROM StabilityPointStructuresOutputEntity +WHERE StabilityPointStructuresOutputEntityId IN +( + SELECT + [StabilityPointStructuresOutputEntityId] + FROM [SOURCEPROJECT].StabilityPointStructuresOutputEntity + JOIN [SOURCEPROJECT].StabilityPointStructuresCalculationEntity USING(StabilityPointStructuresCalculationEntityId) + JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) + WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / + (LENGTH('') + LENGTH('')) = 1 +); + +DELETE +FROM GrassCoverErosionOutwardsWaveConditionsOutputEntity +WHERE GrassCoverErosionOutwardsWaveConditionsOutputEntityId IN +( + SELECT + [GrassCoverErosionOutwardsWaveConditionsOutputEntityId] + FROM [SOURCEPROJECT].GrassCoverErosionOutwardsWaveConditionsOutputEntity + JOIN [SOURCEPROJECT].GrassCoverErosionOutwardsWaveConditionsCalculationEntity USING(GrassCoverErosionOutwardsWaveConditionsCalculationEntityId) + JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) + WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / + (LENGTH('') + LENGTH('')) = 1 +); + +DELETE +FROM StabilityStoneCoverWaveConditionsOutputEntity +WHERE StabilityStoneCoverWaveConditionsOutputEntityId IN +( + SELECT + [StabilityStoneCoverWaveConditionsOutputEntityId] + FROM [SOURCEPROJECT].StabilityStoneCoverWaveConditionsOutputEntity + JOIN [SOURCEPROJECT].StabilityStoneCoverWaveConditionsCalculationEntity USING(StabilityStoneCoverWaveConditionsCalculationEntityId) + JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) + WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / + (LENGTH('') + LENGTH('')) = 1 +); + +DELETE +FROM WaveImpactAsphaltCoverWaveConditionsOutputEntity +WHERE WaveImpactAsphaltCoverWaveConditionsOutputEntityId IN +( + SELECT + [WaveImpactAsphaltCoverWaveConditionsOutputEntityId] + FROM [SOURCEPROJECT].WaveImpactAsphaltCoverWaveConditionsOutputEntity + JOIN [SOURCEPROJECT].WaveImpactAsphaltCoverWaveConditionsCalculationEntity USING(WaveImpactAsphaltCoverWaveConditionsCalculationEntityId) + JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) + WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / + (LENGTH('') + LENGTH('')) = 1 +); + /* Write migration logging */ @@ -1626,101 +1755,4 @@ PRAGMA foreign_keys = ON; -/* - Delete all output entries that were calculated with invalid dikeprofiles or foreshoreprofiles - Deletion is performed at this stage to prevent orphaned entries in the database after migration -*/ -DELETE -FROM GrassCoverErosionInwardsOutputEntity -WHERE GrassCoverErosionInwardsOutputEntityId IN -( - SELECT - [GrassCoverErosionInwardsOutputEntityId] - FROM [SOURCEPROJECT].GrassCoverErosionInwardsOutputEntity - JOIN [SOURCEPROJECT].GrassCoverErosionInwardsCalculationEntity USING(GrassCoverErosionInwardsCalculationEntityId) - JOIN [SOURCEPROJECT].DikeProfileEntity USING(DikeProfileEntityId) - WHERE(LENGTH(DikeGeometryXml) - LENGTH(REPLACE(REPLACE(DikeGeometryXml, '', ''), '', ''))) / - (LENGTH('') + LENGTH('')) < 2 - OR (LENGTH(ForeshoreXML) - LENGTH(REPLACE(REPLACE(ForeshoreXML, '', ''), '', ''))) - / (LENGTH('') + LENGTH('')) = 1 -); - -DELETE -FROM ClosingStructuresOutputEntity -WHERE ClosingStructuresOutputEntityId IN -( - SELECT - [ClosingStructuresOutputEntityId] - FROM [SOURCEPROJECT].ClosingStructuresOutputEntity - JOIN [SOURCEPROJECT].ClosingStructuresCalculationEntity USING(ClosingStructuresCalculationEntityId) - JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) - WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / - (LENGTH('') + LENGTH('')) = 1 -); - -DELETE -FROM HeightStructuresOutputEntity -WHERE HeightStructuresOutputEntityId IN -( - SELECT - [HeightStructuresOutputEntityId] - FROM [SOURCEPROJECT].HeightStructuresOutputEntity - JOIN [SOURCEPROJECT].HeightStructuresCalculationEntity USING(HeightStructuresCalculationEntityId) - JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) - WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / - (LENGTH('') + LENGTH('')) = 1 -); - -DELETE -FROM StabilityPointStructuresOutputEntity -WHERE StabilityPointStructuresOutputEntityId IN -( - SELECT - [StabilityPointStructuresOutputEntityId] - FROM [SOURCEPROJECT].StabilityPointStructuresOutputEntity - JOIN [SOURCEPROJECT].StabilityPointStructuresCalculationEntity USING(StabilityPointStructuresCalculationEntityId) - JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) - WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / - (LENGTH('') + LENGTH('')) = 1 -); - -DELETE -FROM GrassCoverErosionOutwardsWaveConditionsOutputEntity -WHERE GrassCoverErosionOutwardsWaveConditionsOutputEntityId IN -( - SELECT - [GrassCoverErosionOutwardsWaveConditionsOutputEntityId] - FROM [SOURCEPROJECT].GrassCoverErosionOutwardsWaveConditionsOutputEntity - JOIN [SOURCEPROJECT].GrassCoverErosionOutwardsWaveConditionsCalculationEntity USING(GrassCoverErosionOutwardsWaveConditionsCalculationEntityId) - JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) - WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / - (LENGTH('') + LENGTH('')) = 1 -); - -DELETE -FROM StabilityStoneCoverWaveConditionsOutputEntity -WHERE StabilityStoneCoverWaveConditionsOutputEntityId IN -( - SELECT - [StabilityStoneCoverWaveConditionsOutputEntityId] - FROM [SOURCEPROJECT].StabilityStoneCoverWaveConditionsOutputEntity - JOIN [SOURCEPROJECT].StabilityStoneCoverWaveConditionsCalculationEntity USING(StabilityStoneCoverWaveConditionsCalculationEntityId) - JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) - WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / - (LENGTH('') + LENGTH('')) = 1 -); - -DELETE -FROM WaveImpactAsphaltCoverWaveConditionsOutputEntity -WHERE WaveImpactAsphaltCoverWaveConditionsOutputEntityId IN -( - SELECT - [WaveImpactAsphaltCoverWaveConditionsOutputEntityId] - FROM [SOURCEPROJECT].WaveImpactAsphaltCoverWaveConditionsOutputEntity - JOIN [SOURCEPROJECT].WaveImpactAsphaltCoverWaveConditionsCalculationEntity USING(WaveImpactAsphaltCoverWaveConditionsCalculationEntityId) - JOIN [SOURCEPROJECT].ForeshoreProfileEntity USING(ForeshoreProfileEntityId) - WHERE (LENGTH(GeometryXML) - LENGTH(REPLACE(REPLACE(GeometryXML, '', ''), '', ''))) / - (LENGTH('') + LENGTH('')) = 1 -); - DETACH SOURCEPROJECT; \ No newline at end of file