diff options
| author | Zog | 2018-05-30 14:11:25 +0200 | 
|---|---|---|
| committer | Zog | 2018-05-30 14:18:22 +0200 | 
| commit | 819b03075f74018b8f16a2f73fa7a526f704a675 (patch) | |
| tree | d59daafc0fa94551901137898dec6997fd88063c /app/models | |
| parent | 79e89af12bbc865b6defafa27dca5dafd72df3ef (diff) | |
| download | chouette-core-819b03075f74018b8f16a2f73fa7a526f704a675.tar.bz2 | |
Refs #7227; Performance-oriented cleanup implementation
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/chouette/route.rb | 12 | ||||
| -rw-r--r-- | app/models/clean_up.rb | 2 | 
2 files changed, 13 insertions, 1 deletions
| diff --git a/app/models/chouette/route.rb b/app/models/chouette/route.rb index 6a02203ad..f1cc562f1 100644 --- a/app/models/chouette/route.rb +++ b/app/models/chouette/route.rb @@ -34,6 +34,7 @@ module Chouette          Chouette::Route.vehicle_journeys_timeless(proxy_association.owner.journey_patterns.pluck( :departure_stop_point_id))        end      end +    has_many :vehicle_journey_at_stops, through: :vehicle_journeys      has_many :vehicle_journey_frequencies, :dependent => :destroy do        # Todo : I think there is a better way to do this.        def timeless @@ -92,6 +93,17 @@ module Chouette            TomTom.enabled?        } +    def clean! +      vehicle_journeys.find_each do |vj| +        vj.vehicle_journey_at_stops.delete_all +      end +      vehicle_journeys.delete_all +      journey_patterns.delete_all +      stop_points.delete_all +      routing_constraint_zones.delete_all +      self.delete +    end +      def duplicate opposite=false        overrides = {          'opposite_route_id' => nil, diff --git a/app/models/clean_up.rb b/app/models/clean_up.rb index 9cf2389c9..c9dc269ac 100644 --- a/app/models/clean_up.rb +++ b/app/models/clean_up.rb @@ -109,7 +109,7 @@ class CleanUp < ApplicationModel    def destroy_routes_outside_referential      line_ids = referential.metadatas.pluck(:line_ids).flatten.uniq -    Chouette::Route.where(['line_id not in (?)', line_ids]).destroy_all +    Chouette::Route.where(['line_id not in (?)', line_ids]).find_each &:clean!    end    def destroy_vehicle_journeys | 
