Loading lib/Travelynx/Command/import.pm +25 −2 Original line number Diff line number Diff line Loading @@ -61,8 +61,31 @@ sub import_stops { $backend_query{$type} = $row->[ $col{backend} ]; } } my $backend_id my $backend_id; eval { $backend_id = $self->app->stations->get_backend_id(%backend_query); }; if ( $@ and $@ =~ m{Unknown \S+ backend} ) { # Backends come and go. If the instance we're importing from # is old, it may contain backends that are no longer provided # by the EFA, HAFAS, etc. modules. But it may still contain # stops (and, possibly, journeys) for such backends. In that # case, we need to add the backend here. $backend_id = $db->insert( 'backends', { dbris => $row->[ $col{dbris} ], efa => $row->[ $col{efa} ], hafas => $row->[ $col{hafas} ], iris => 0, motis => $row->[ $col{motis} ], name => $row->[ $col{backend} ], }, { returning => 'id' }, )->hash->{id}; } if ( $row->[ $col{extId} ] ) { push( @extId_queue, [ $row, $backend_id ] ); Loading lib/Travelynx/Model/Stations.pm +24 −12 Original line number Diff line number Diff line Loading @@ -40,48 +40,60 @@ sub get_backend_id { my $backend_id = 0; if ( $opt{dbris} ) { $backend_id = $db->select( my $res = $db->select( 'backends', ['id'], { dbris => 1, name => $opt{dbris} } )->hash->{id}; $self->{backend_id}{dbris}{ $opt{dbris} } = $backend_id; )->hash; if ($res) { return $self->{backend_id}{dbris}{ $opt{dbris} } = $res->{id}; } die("Unknown DBRIS backend '$opt{dbris}'"); } elsif ( $opt{efa} ) { $backend_id = $db->select( my $res = $db->select( 'backends', ['id'], { efa => 1, name => $opt{efa} } )->hash->{id}; $self->{backend_id}{efa}{ $opt{efa} } = $backend_id; )->hash; if ($res) { return $self->{backend_id}{efa}{ $opt{efa} } = $res->{id}; } die("Unknown EFA backend '$opt{efa}'"); } elsif ( $opt{hafas} ) { $backend_id = $db->select( my $res = $db->select( 'backends', ['id'], { hafas => 1, name => $opt{hafas} } )->hash->{id}; $self->{backend_id}{hafas}{ $opt{hafas} } = $backend_id; )->hash; if ($res) { return $self->{backend_id}{hafas}{ $opt{hafas} } = $res->{id}; } die("Unknown HAFAS backend '$opt{hafas}'"); } elsif ( $opt{motis} ) { $backend_id = $db->select( my $res = $db->select( 'backends', ['id'], { motis => 1, name => $opt{motis} } )->hash->{id}; $self->{backend_id}{motis}{ $opt{motis} } = $backend_id; )->hash; if ($res) { return $self->{backend_id}{motis}{ $opt{motis} } = $res->{id}; } die("Unknown MOTIS backend '$opt{motis}'"); } return $backend_id; Loading Loading
lib/Travelynx/Command/import.pm +25 −2 Original line number Diff line number Diff line Loading @@ -61,8 +61,31 @@ sub import_stops { $backend_query{$type} = $row->[ $col{backend} ]; } } my $backend_id my $backend_id; eval { $backend_id = $self->app->stations->get_backend_id(%backend_query); }; if ( $@ and $@ =~ m{Unknown \S+ backend} ) { # Backends come and go. If the instance we're importing from # is old, it may contain backends that are no longer provided # by the EFA, HAFAS, etc. modules. But it may still contain # stops (and, possibly, journeys) for such backends. In that # case, we need to add the backend here. $backend_id = $db->insert( 'backends', { dbris => $row->[ $col{dbris} ], efa => $row->[ $col{efa} ], hafas => $row->[ $col{hafas} ], iris => 0, motis => $row->[ $col{motis} ], name => $row->[ $col{backend} ], }, { returning => 'id' }, )->hash->{id}; } if ( $row->[ $col{extId} ] ) { push( @extId_queue, [ $row, $backend_id ] ); Loading
lib/Travelynx/Model/Stations.pm +24 −12 Original line number Diff line number Diff line Loading @@ -40,48 +40,60 @@ sub get_backend_id { my $backend_id = 0; if ( $opt{dbris} ) { $backend_id = $db->select( my $res = $db->select( 'backends', ['id'], { dbris => 1, name => $opt{dbris} } )->hash->{id}; $self->{backend_id}{dbris}{ $opt{dbris} } = $backend_id; )->hash; if ($res) { return $self->{backend_id}{dbris}{ $opt{dbris} } = $res->{id}; } die("Unknown DBRIS backend '$opt{dbris}'"); } elsif ( $opt{efa} ) { $backend_id = $db->select( my $res = $db->select( 'backends', ['id'], { efa => 1, name => $opt{efa} } )->hash->{id}; $self->{backend_id}{efa}{ $opt{efa} } = $backend_id; )->hash; if ($res) { return $self->{backend_id}{efa}{ $opt{efa} } = $res->{id}; } die("Unknown EFA backend '$opt{efa}'"); } elsif ( $opt{hafas} ) { $backend_id = $db->select( my $res = $db->select( 'backends', ['id'], { hafas => 1, name => $opt{hafas} } )->hash->{id}; $self->{backend_id}{hafas}{ $opt{hafas} } = $backend_id; )->hash; if ($res) { return $self->{backend_id}{hafas}{ $opt{hafas} } = $res->{id}; } die("Unknown HAFAS backend '$opt{hafas}'"); } elsif ( $opt{motis} ) { $backend_id = $db->select( my $res = $db->select( 'backends', ['id'], { motis => 1, name => $opt{motis} } )->hash->{id}; $self->{backend_id}{motis}{ $opt{motis} } = $backend_id; )->hash; if ($res) { return $self->{backend_id}{motis}{ $opt{motis} } = $res->{id}; } die("Unknown MOTIS backend '$opt{motis}'"); } return $backend_id; Loading