Skip to content

Commit

Permalink
Do not specify migrations which did not change process in process mig…
Browse files Browse the repository at this point in the history
…ration comment
  • Loading branch information
gadomsky committed Nov 30, 2022
1 parent f692a48 commit 7fef536
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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("")
}

Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 2 additions & 0 deletions docs/Changelog.md
Original file line number Diff line number Diff line change
@@ -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)
------------------------
Expand Down

0 comments on commit 7fef536

Please sign in to comment.