diff --git a/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/migrate/ProcessModelMigrator.scala b/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/migrate/ProcessModelMigrator.scala index 5b4f93086fc..09372cf18c7 100644 --- a/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/migrate/ProcessModelMigrator.scala +++ b/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/migrate/ProcessModelMigrator.scala @@ -39,10 +39,13 @@ class ProcessModelMigrator(migrations: ProcessingTypeDataProvider[ProcessMigrati } private def migrateWithMigrations(process: CanonicalProcess, migrationsToApply: List[ProcessMigration]): MigrationResult = { - val resultProcess = migrationsToApply.foldLeft(process) { - case (processToConvert, migration) => migration.migrateProcess(processToConvert) + val (resultProcess, migrationsApplied) = migrationsToApply.foldLeft((process, Nil: List[ProcessMigration])) { + case ((processToConvert, migrationsAppliedAcc), migration) => + val migrated = migration.migrateProcess(processToConvert) + val migrationsApplied = if (migrated != processToConvert) migration :: migrationsAppliedAcc else migrationsAppliedAcc + (migrated, migrationsApplied) } - MigrationResult(resultProcess, migrationsToApply) + MigrationResult(resultProcess, migrationsApplied.reverse) } } diff --git a/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/SystemComment.scala b/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/SystemComment.scala index 97505941645..2d6fd0ac747 100644 --- a/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/SystemComment.scala +++ b/designer/server/src/main/scala/pl/touk/nussknacker/ui/process/repository/SystemComment.scala @@ -15,6 +15,9 @@ object UpdateProcessComment { case class MigrationComment(migrationsApplied: List[ProcessMigration]) extends SystemComment { - override def value: String = s"Migrations applied: ${migrationsApplied.map(_.description).mkString(", ")}" + override def value: String = Option(migrationsApplied) + .filter(_.nonEmpty) + .map(ma => s"Migrations applied: ${ma.map(_.description).mkString(", ")}") + .getOrElse("") } diff --git a/designer/server/src/test/scala/pl/touk/nussknacker/ui/process/migrate/ProcessModelMigratorSpec.scala b/designer/server/src/test/scala/pl/touk/nussknacker/ui/process/migrate/ProcessModelMigratorSpec.scala index 3761fe1e6ea..33926ee9928 100644 --- a/designer/server/src/test/scala/pl/touk/nussknacker/ui/process/migrate/ProcessModelMigratorSpec.scala +++ b/designer/server/src/test/scala/pl/touk/nussknacker/ui/process/migrate/ProcessModelMigratorSpec.scala @@ -24,6 +24,13 @@ class ProcessModelMigratorSpec extends AnyFlatSpec with BeforeAndAfterEach with private implicit val user = TestFactory.adminUser("test1") + it should "return migrations that actually changed process in migrationsApplied in MigrationResult" in { + + val migrationResult: MigrationResult = migrateByVersions(None, 1, 2, 3, 4, 6, 7, 8, 9) + + migrationResult.migrationsApplied.map(_.description) should contain theSameElementsAs List("testMigration1", "testMigration2", "testMigration8") + } + it should "migrate processes to new versions when not migrated" in { val migrationResult: MigrationResult = migrateByVersions(None, 1, 2) diff --git a/docs/Changelog.md b/docs/Changelog.md index d4503c7c80d..5fc2f64e154 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -1,5 +1,7 @@ # Changelog +1.8.0 (Not released yet) +* [#3752](https://github.com/TouK/nussknacker/pull/3752) Do not specify migrations which did not change process in process migration comment 1.7.0 (Not released yet) ------------------------