REFACTOR: Simplify converter steps in migration tooling (#29779)

* Remove unused `report_progress_in_percent` option from step
* Remove `use_custom_progress_increment` option from the step because we can figure it out by looking at the progress
* Introduce `StepTracker` to for logging warnings and errors and tracking step progress
* Make it easier to log warnings and errors in all methods of `Step` without the need to pass around a `stats` object
This commit is contained in:
Gerhard Schlager
2024-11-19 23:54:37 +01:00
committed by GitHub
parent a48af2f120
commit 5ac69076c1
18 changed files with 153 additions and 161 deletions

View File

@ -39,7 +39,7 @@ module Migrations::Converters::Base
with_progressbar do |progressbar|
@step.items.each do |item|
stats = job.run(item)
progressbar.update(stats)
progressbar.update(stats.progress, stats.warning_count, stats.error_count)
end
end
end
@ -76,11 +76,7 @@ module Migrations::Converters::Base
def with_progressbar
::Migrations::ExtendedProgressBar
.new(
max_progress: @max_progress,
report_progress_in_percent: @step.class.report_progress_in_percent?,
use_custom_progress_increment: @step.class.use_custom_progress_increment?,
)
.new(max_progress: @max_progress)
.run { |progressbar| yield progressbar }
end
@ -94,7 +90,7 @@ module Migrations::Converters::Base
::Migrations::Database::IntermediateDB.insert(sql, *parameters)
end
progressbar.update(stats)
progressbar.update(stats.progress, stats.warning_count, stats.error_count)
end
end
end