From c2e0f377be954b70c1c095e441871231c603a34d Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Thu, 6 Feb 2020 17:54:23 +0100 Subject: maintenance: consider station renames whan backpropagating polylines --- lib/Travelynx/Command/maintenance.pm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'lib/Travelynx/Command') diff --git a/lib/Travelynx/Command/maintenance.pm b/lib/Travelynx/Command/maintenance.pm index 32a6231..8237e33 100644 --- a/lib/Travelynx/Command/maintenance.pm +++ b/lib/Travelynx/Command/maintenance.pm @@ -165,6 +165,35 @@ sub run { exit(1); } } + else { + while ( my ( $old_name, $new_name ) + = each %{ $self->app->renamed_station } ) + { + $journey->{route} =~ s{"\Q$old_name\E"}{"$new_name"}; + } + my $ref = $db->select( + 'journeys', + [ 'id', 'polyline_id' ], + { + route => $journey->{route}, + polyline_id => { '!=', undef }, + edited => 0, + }, + { limit => 1 } + )->hash; + if ($ref) { + my $rows = $db->update( + 'journeys', + { polyline_id => $ref->{polyline_id} }, + { id => $journey->{id} } + )->rows; + if ( $rows != 1 ) { + say STDERR +"Database update returned $rows rows, expected 1. Rollback and abort."; + exit(1); + } + } + } } my $remaining -- cgit v1.2.3