Index: Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/DatabaseStructure23.1.sql =================================================================== diff -u -r624b79046befa32185f168e9e63c42859ec0f83e -r9a179b5d2acd05b28a14e24a8417600f82d88fcd --- Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/DatabaseStructure23.1.sql (.../DatabaseStructure23.1.sql) (revision 624b79046befa32185f168e9e63c42859ec0f83e) +++ Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/DatabaseStructure23.1.sql (.../DatabaseStructure23.1.sql) (revision 9a179b5d2acd05b28a14e24a8417600f82d88fcd) @@ -1,6 +1,6 @@ /* ---------------------------------------------------- */ /* Generated by Enterprise Architect Version 15.2 */ -/* Created On : 10-mrt-2023 08:55:58 */ +/* Created On : 11-apr-2023 10:27:28 */ /* DBMS : SQLite */ /* ---------------------------------------------------- */ @@ -829,17 +829,16 @@ CREATE TABLE 'DuneLocationEntity' ( 'DuneLocationEntityId' INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + 'HydraulicLocationEntityId' INTEGER NOT NULL, 'FailureMechanismEntityId' INTEGER NOT NULL, - 'LocationId' INTEGER NOT NULL, 'Name' VARCHAR (260) NOT NULL, - 'LocationX' REAL NULL, - 'LocationY' REAL NULL, 'CoastalAreaId' INT (4) NOT NULL, 'Offset' REAL NULL, 'Orientation' REAL NULL, 'D50' 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_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 ) ; @@ -2172,6 +2171,10 @@ ON 'DuneLocationEntity' ('FailureMechanismEntityId' ASC) ; +CREATE INDEX 'IXFK_DuneLocationEntity_HydraulicLocationEntity' + ON 'DuneLocationEntity' ('HydraulicLocationEntityId' ASC) +; + CREATE INDEX 'IXFK_FailureMechanismFailureMechanismSectionEntity_FailureMechanismEntity' ON 'FailureMechanismFailureMechanismSectionEntity' ('FailureMechanismEntityId' ASC) ; Index: Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_22.1_23.1.sql =================================================================== diff -u -r624b79046befa32185f168e9e63c42859ec0f83e -r9a179b5d2acd05b28a14e24a8417600f82d88fcd --- Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_22.1_23.1.sql (.../Migration_22.1_23.1.sql) (revision 624b79046befa32185f168e9e63c42859ec0f83e) +++ Riskeer/Migration/src/Riskeer.Migration.Core/EmbeddedResources/Migration_22.1_23.1.sql (.../Migration_22.1_23.1.sql) (revision 9a179b5d2acd05b28a14e24a8417600f82d88fcd) @@ -39,7 +39,33 @@ INSERT INTO DuneLocationCalculationEntity SELECT * FROM [SOURCEPROJECT].DuneLocationCalculationEntity; INSERT INTO DuneLocationCalculationForTargetProbabilityCollectionEntity SELECT * FROM [SOURCEPROJECT].DuneLocationCalculationForTargetProbabilityCollectionEntity; INSERT INTO DuneLocationCalculationOutputEntity SELECT * FROM [SOURCEPROJECT].DuneLocationCalculationOutputEntity; -INSERT INTO DuneLocationEntity SELECT * FROM [SOURCEPROJECT].DuneLocationEntity; +INSERT INTO DuneLocationEntity ( + [DuneLocationEntityId], + [HydraulicLocationEntityId], + [FailureMechanismEntityId], + [Name], + [CoastalAreaId], + [Offset], + [Orientation], + [D50], + [Order] +) +SELECT + [DuneLocationEntityId], + [HydraulicLocationEntityId], + [FailureMechanismEntityId], + [Name], + [CoastalAreaId], + [Offset], + [Orientation], + [D50], + [Order] +FROM [SOURCEPROJECT].DuneLocationEntity +JOIN ( + SELECT HydraulicLocationEntityId, LocationId + FROM [SOURCEPROJECT].HydraulicLocationEntity +) +USING(LocationId); INSERT INTO FailureMechanismFailureMechanismSectionEntity SELECT * FROM [SOURCEPROJECT].FailureMechanismFailureMechanismSectionEntity; INSERT INTO FaultTreeIllustrationPointEntity SELECT * FROM [SOURCEPROJECT].FaultTreeIllustrationPointEntity; INSERT INTO FaultTreeIllustrationPointStochastEntity SELECT * FROM [SOURCEPROJECT].FaultTreeIllustrationPointStochastEntity; Index: Riskeer/Migration/test/Riskeer.Migration.Core.Test/test-data/Empty valid Release 23.1.risk =================================================================== diff -u -rffd4661bd35c59a87b9ef2e0d2724d3dfa8357eb -r9a179b5d2acd05b28a14e24a8417600f82d88fcd Binary files differ Index: Riskeer/Migration/test/Riskeer.Migration.Core.Test/test-data/MigrationTestProject221.risk =================================================================== diff -u -r772b8432db24f4620182165e14e54226deba85b4 -r9a179b5d2acd05b28a14e24a8417600f82d88fcd Binary files differ Index: Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo231IntegrationTest.cs =================================================================== diff -u -r5b17ffff71f6282ae546ed84413fd522cc4bdf12 -r9a179b5d2acd05b28a14e24a8417600f82d88fcd --- Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo231IntegrationTest.cs (.../MigrationTo231IntegrationTest.cs) (revision 5b17ffff71f6282ae546ed84413fd522cc4bdf12) +++ Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo231IntegrationTest.cs (.../MigrationTo231IntegrationTest.cs) (revision 9a179b5d2acd05b28a14e24a8417600f82d88fcd) @@ -60,6 +60,8 @@ AssertVersions(reader); AssertDatabase(reader); + AssertDuneLocation(reader, sourceFilePath); + AssertHydraulicBoundaryData(reader, sourceFilePath); AssertHydraulicBoundaryDatabase(reader, sourceFilePath); AssertHydraulicLocation(reader, sourceFilePath); @@ -69,6 +71,35 @@ } } + private static void AssertDuneLocation(MigratedDatabaseReader reader, string sourceFilePath) + { + string validateDuneLocation = + $"ATTACH DATABASE \"{sourceFilePath}\" AS SOURCEPROJECT; " + + "SELECT COUNT() = " + + "(" + + "SELECT COUNT() " + + "FROM SOURCEPROJECT.DuneLocationEntity " + + ") " + + "FROM DuneLocationEntity NEW " + + "JOIN SOURCEPROJECT.DuneLocationEntity OLD USING(DuneLocationEntityId) " + + "JOIN (" + + "SELECT HydraulicLocationEntityId, LocationId " + + "FROM SOURCEPROJECT.HydraulicLocationEntity " + + ") HYDRAULICLOCATION " + + "USING(LocationId) " + + "WHERE NEW.[FailureMechanismEntityId] = OLD.[FailureMechanismEntityId] " + + "AND NEW.[HydraulicLocationEntityId] = HYDRAULICLOCATION.[HydraulicLocationEntityId] " + + "AND NEW.[Name] = OLD.[Name]" + + "AND NEW.[CoastalAreaId] = OLD.[CoastalAreaId] " + + "AND NEW.[Offset] IS OLD.[Offset] " + + "AND NEW.[Orientation] IS OLD.[Orientation] " + + "AND NEW.[D50] IS OLD.[D50] " + + "AND NEW.\"Order\" = OLD.\"Order\"; " + + "DETACH SOURCEPROJECT"; + + reader.AssertReturnedDataIsValid(validateDuneLocation); + } + private static void AssertHydraulicBoundaryData(MigratedDatabaseReader reader, string sourceFilePath) { string validateHydraulicBoundaryData = @@ -178,7 +209,6 @@ "DuneLocationCalculationEntity", "DuneLocationCalculationForTargetProbabilityCollectionEntity", "DuneLocationCalculationOutputEntity", - "DuneLocationEntity", "FailureMechanismFailureMechanismSectionEntity", "FaultTreeIllustrationPointEntity", "FaultTreeIllustrationPointStochastEntity",