Index: Application/Ringtoets/src/Application.Ringtoets.Migration.Core/EmbeddedResources/Migration_17.3_18.1.sql =================================================================== diff -u -r7d89262d3b971dceec1e987e22d0027bf675c196 -ra6b42278177cd527e6632f93233011ea86ffd979 --- Application/Ringtoets/src/Application.Ringtoets.Migration.Core/EmbeddedResources/Migration_17.3_18.1.sql (.../Migration_17.3_18.1.sql) (revision 7d89262d3b971dceec1e987e22d0027bf675c196) +++ Application/Ringtoets/src/Application.Ringtoets.Migration.Core/EmbeddedResources/Migration_17.3_18.1.sql (.../Migration_17.3_18.1.sql) (revision a6b42278177cd527e6632f93233011ea86ffd979) @@ -51,8 +51,6 @@ INSERT INTO HeightStructuresOutputEntity SELECT * FROM [SOURCEPROJECT].HeightStructuresOutputEntity; INSERT INTO HeightStructuresSectionResultEntity SELECT * FROM [SOURCEPROJECT].HeightStructuresSectionResultEntity; INSERT INTO HydraRingPreprocessorEntity SELECT * FROM [SOURCEPROJECT].HydraRingPreprocessorEntity; -INSERT INTO HydraulicLocationEntity SELECT * FROM [SOURCEPROJECT].HydraulicLocationEntity; -INSERT INTO HydraulicLocationOutputEntity SELECT * FROM [SOURCEPROJECT].HydraulicLocationOutputEntity; INSERT INTO IllustrationPointResultEntity SELECT * FROM [SOURCEPROJECT].IllustrationPointResultEntity; INSERT INTO MacroStabilityInwardsCalculationEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsCalculationEntity; INSERT INTO MacroStabilityInwardsCalculationOutputEntity SELECT * FROM [SOURCEPROJECT].MacroStabilityInwardsCalculationOutputEntity; @@ -188,6 +186,147 @@ INSERT INTO WaveImpactAsphaltCoverWaveConditionsCalculationEntity SELECT * FROM [SOURCEPROJECT].WaveImpactAsphaltCoverWaveConditionsCalculationEntity; INSERT INTO WaveImpactAsphaltCoverWaveConditionsOutputEntity SELECT * FROM [SOURCEPROJECT].WaveImpactAsphaltCoverWaveConditionsOutputEntity; +/* +Insert new data +*/ + +-- Insert new Hydraulic Location Calculations +-- Note: Union has been used to repeat the operation 8 times for the calculations +INSERT INTO HydraulicLocationCalculationEntity ( + [ShouldIllustrationPointsBeCalculated] +) +SELECT + 0 + FROM [SOURCEPROJECT].HydraulicLocationEntity +UNION ALL +SELECT + 0 + FROM [SOURCEPROJECT].HydraulicLocationEntity +UNION ALL +SELECT + 0 + FROM [SOURCEPROJECT].HydraulicLocationEntity +UNION ALL +SELECT + 0 + FROM [SOURCEPROJECT].HydraulicLocationEntity +UNION ALL +SELECT + 0 + FROM [SOURCEPROJECT].HydraulicLocationEntity +UNION ALL +SELECT + 0 + FROM [SOURCEPROJECT].HydraulicLocationEntity +UNION ALL +SELECT + 0 + FROM [SOURCEPROJECT].HydraulicLocationEntity +UNION ALL +SELECT + 0 + FROM [SOURCEPROJECT].HydraulicLocationEntity; + +-- Create temp table to store the new calculation ids +CREATE TEMP TABLE TempHydraulicLocationCalculationEntity +( + 'Calculation1Id' INTEGER NOT NULL, + 'Calculation2Id' INTEGER NOT NULL, + 'Calculation3Id' INTEGER NOT NULL, + 'Calculation4Id' INTEGER NOT NULL, + 'Calculation5Id' INTEGER NOT NULL, + 'Calculation6Id' INTEGER NOT NULL, + 'Calculation7Id' INTEGER NOT NULL, + 'Calculation8Id' INTEGER NOT NULL, + 'HydraulicLocationEntityId' INTEGER NOT NULL, + PRIMARY KEY + ( + 'Calculation1Id', + 'Calculation2Id', + 'Calculation3Id', + 'Calculation4Id', + 'Calculation5Id', + 'Calculation6Id', + 'Calculation7Id', + 'Calculation8Id', + 'HydraulicLocationEntityId' + ) +) WITHOUT ROWID; + +-- Store the mapping between the calculations and the hydraulic boundary location +INSERT INTO TempHydraulicLocationCalculationEntity ( + [Calculation1Id], + [Calculation2Id], + [Calculation3Id], + [Calculation4Id], + [Calculation5Id], + [Calculation6Id], + [Calculation7Id], + [Calculation8Id], + [HydraulicLocationEntityId]) +SELECT + last_insert_rowid() - IndexOffSet, + last_insert_rowid() - IndexOffset - 1, + last_insert_rowid() - IndexOffset - 2, + last_insert_rowid() - IndexOffset - 3, + last_insert_rowid() - IndexOffset - 4, + last_insert_rowid() - IndexOffset - 5, + last_insert_rowid() - IndexOffset - 6, + last_insert_rowid() - IndexOffset - 7, + HydraulicLocationEntityId +FROM ( + SELECT + hleB.HydraulicLocationEntityId AS HydraulicLocationEntityId, + ( + SELECT + (COUNT() - 1) * 8 + FROM [SOURCEPROJECT].HydraulicLocationEntity hleA + WHERE hleA.HydraulicLocationEntityId >= hleB.HydraulicLocationEntityId + ) AS IndexOffSet + FROM [SOURCEPROJECT].HydraulicLocationEntity hleB + ORDER BY hleB.HydraulicLocationEntityId +); + +-- Perform the insertion +INSERT INTO HydraulicLocationEntity ( + [HydraulicLocationEntityId], + [AssessmentSectionEntityId], + [HydraulicLocationCalculationEntity1Id], + [HydraulicLocationCalculationEntity2Id], + [HydraulicLocationCalculationEntity3Id], + [HydraulicLocationCalculationEntity4Id], + [HydraulicLocationCalculationEntity5Id], + [HydraulicLocationCalculationEntity6Id], + [HydraulicLocationCalculationEntity7Id], + [HydraulicLocationCalculationEntity8Id], + [LocationId], + [Name], + [LocationX], + [LocationY], + [Order] +) +SELECT + [HydraulicLocationEntityId], + [AssessmentSectionEntityId], + [Calculation1Id], + [Calculation2Id], + [Calculation3Id], + [Calculation4Id], + [Calculation5Id], + [Calculation6Id], + [Calculation7Id], + [Calculation8Id], + [LocationId], + [Name], + [LocationX], + [LocationY], + [Order] + FROM [SOURCEPROJECT].HydraulicLocationEntity AS sp + JOIN TempHydraulicLocationCalculationEntity USING (HydraulicLocationEntityId); + +-- Cleanup +DROP TABLE TempHydraulicLocationCalculationEntity; + /* Write migration logging */ Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/MigrationTo181IntegrationTest.cs =================================================================== diff -u -r7d89262d3b971dceec1e987e22d0027bf675c196 -ra6b42278177cd527e6632f93233011ea86ffd979 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/MigrationTo181IntegrationTest.cs (.../MigrationTo181IntegrationTest.cs) (revision 7d89262d3b971dceec1e987e22d0027bf675c196) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/MigrationTo181IntegrationTest.cs (.../MigrationTo181IntegrationTest.cs) (revision a6b42278177cd527e6632f93233011ea86ffd979) @@ -60,6 +60,8 @@ AssertVersions(reader); AssertDatabase(reader); + AssertHydraulicBoundaryLocations(reader, sourceFilePath); + AssertPipingSoilLayers(reader); AssertHydraRingPreprocessor(reader); AssertStabilityStoneCoverFailureMechanism(reader); @@ -247,6 +249,16 @@ reader.AssertReturnedDataIsValid(validatePreprocessorSettings); } + private static void AssertHydraulicBoundaryLocations(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateNrOfHydraulicBoundaryCalculationEntities = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = (SELECT COUNT() * 8 FROM [SOURCEPROJECT].HydraulicLocationEntity) " + + "FROM HydraulicLocationCalculationEntity; " + + "DETACH SOURCEPROJECT;"; + reader.AssertReturnedDataIsValid(validateNrOfHydraulicBoundaryCalculationEntities); + } + private static void AssertPipingSoilLayers(MigratedDatabaseReader reader) { const string validateBelowPhreaticLevel =