diff options
| -rw-r--r-- | Gemfile | 4 | ||||
| -rw-r--r-- | Gemfile.lock | 14 | ||||
| -rw-r--r-- | app/models/clean_up.rb | 27 | ||||
| -rw-r--r-- | db/migrate/20130207123618_add_foreign_keys.ninoxe_engine.rb | 278 | ||||
| -rw-r--r-- | db/schema.rb | 50 |
5 files changed, 352 insertions, 21 deletions
@@ -40,11 +40,11 @@ gem 'calendar_helper', :git => "git://github.com/topfunky/calendar_helper.git" gem "acts_as_tree", :git => "git://github.com/dryade/acts_as_tree.git" #gem 'ninoxe', :git => 'git://github.com/dryade/ninoxe.git' -gem 'ninoxe', :git => 'git://github.com/dryade/ninoxe.git', :branch => 'V2_0_2' +gem 'ninoxe', :git => 'git://github.com/dryade/ninoxe.git', :branch => 'master' #gem 'ninoxe', :git => 'git://chouette.dryade.priv/ninoxe' #, :path => '~/Projects/Ninoxe' #gem 'ninoxe', :path => '~/workspace/chouette/ninoxe' gem 'acts_as_list', '0.1.6' - +gem 'foreigner', '>=1.3.0' #gem 'composite_primary_keys', '~> 5.0.8' gem 'delayed_job_active_record' gem 'apartment',:git => 'git://github.com/dryade/apartment.git' diff --git a/Gemfile.lock b/Gemfile.lock index 3eb0851a7..9afc3d254 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -49,13 +49,14 @@ GIT GIT remote: git://github.com/dryade/ninoxe.git - revision: 0f669a3b43179085fe3400792ae0faf00c884c93 - branch: V2_0_2 + revision: fbc7d492337b48b4199ba7a6bc1db06579f356f1 + branch: master specs: ninoxe (0.0.8) GeoRuby activerecord (>= 3.1.3) acts_as_list (>= 0.1.6) + foreigner (>= 1.3.0) geokit rails (>= 3.1.3) @@ -150,7 +151,7 @@ GEM devise (2.1.2) bcrypt-ruby (~> 3.0) orm_adapter (~> 0.1) - railties (~> 3.1) + railties (~> 3.1)fbc7d492337b48b4199ba7a6bc1db06579f356f1 warden (~> 1.2.1) devise_invitable (1.1.0) actionmailer (~> 3.0) @@ -171,6 +172,8 @@ GEM ffi (>= 1.0.0) rake (~> 0.9) rdoc + foreigner (1.3.0) + activerecord (>= 3.0.0) formtastic (2.2.1) actionpack (>= 3.0) geokit (1.6.5) @@ -200,8 +203,8 @@ GEM jruby-rack (1.1.9) jruby-rack-worker (0.4-java) jruby-rack (>= 1.1.1) - json (1.7.5) - json (1.7.5-java) + json (1.7.6) + json (1.7.6-java) json_pure (1.7.5) launchy (2.1.0) addressable (~> 2.2.6) @@ -374,6 +377,7 @@ DEPENDENCIES devise_invitable factory_girl_rails (= 1.7) ffi-proj4! + foreigner (>= 1.3.0) formtastic georuby-ext! gravatar_image_tag diff --git a/app/models/clean_up.rb b/app/models/clean_up.rb index a6d26d882..70c763146 100644 --- a/app/models/clean_up.rb +++ b/app/models/clean_up.rb @@ -20,32 +20,33 @@ class CleanUp end def clean + # as foreign keys are presents , delete method can be used for faster performance result = CleanUpResult.new # find and remove time_tables tms = Chouette::TimeTable.validity_out_from_on?(Date.parse(expected_date)) result.time_table_count = tms.size tms.each do |tm| - tm.destroy + tm.delete end # remove vehiclejourneys without timetables Chouette::VehicleJourney.find_each(:conditions => "id not in (select distinct vehicle_journey_id from time_tables_vehicle_journeys)") do |vj| if vj.time_tables.size == 0 result.vehicle_journey_count += 1 - vj.destroy + vj.delete end end # remove journeypatterns without vehicle journeys Chouette::JourneyPattern.find_each(:conditions => "id not in (select distinct journey_pattern_id from vehicle_journeys)") do |jp| if jp.vehicle_journeys.size == 0 result.journey_pattern_count += 1 - jp.destroy + jp.delete end end # remove routes without journeypatterns Chouette::Route.find_each(:conditions => "id not in (select distinct route_id from journey_patterns)") do |r| if r.journey_patterns.size == 0 result.route_count += 1 - r.destroy + r.delete end end # if asked remove lines without routes @@ -53,7 +54,7 @@ class CleanUp Chouette::Line.find_each(:conditions => "id not in (select distinct line_id from routes)") do |l| if l.routes.size == 0 result.line_count += 1 - l.destroy + l.delete end end end @@ -62,31 +63,31 @@ class CleanUp Chouette::StopArea.find_each(:conditions => { :area_type => "BoardingPosition" }) do |bp| if bp.stop_points.size == 0 result.stop_count += 1 - bp.destroy + bp.delete end end Chouette::StopArea.find_each(:conditions => { :area_type => "Quay" }) do |q| if q.stop_points.size == 0 result.stop_count += 1 - q.destroy + q.delete end end Chouette::StopArea.find_each(:conditions => { :area_type => "CommercialStopPoint" }) do |csp| if csp.children.size == 0 result.stop_count += 1 - csp.destroy + csp.delete end end Chouette::StopArea.find_each(:conditions => { :area_type => "StopPlace" }) do |sp| if sp.children.size == 0 result.stop_count += 1 - sp.destroy + sp.delete end end Chouette::StopArea.find_each(:conditions => { :area_type => "ITL" }) do |itl| if itl.routing_stops.size == 0 result.stop_count += 1 - itl.destroy + itl.delete end end end @@ -95,7 +96,7 @@ class CleanUp Chouette::Company.find_each do |c| if c.lines.size == 0 result.company_count += 1 - c.destroy + c.delete end end end @@ -105,7 +106,7 @@ class CleanUp Chouette::Network.find_each do |n| if n.lines.size == 0 result.network_count += 1 - n.destroy + n.delete end end end @@ -115,7 +116,7 @@ class CleanUp Chouette::GroupOfLine.find_each do |n| if n.lines.size == 0 result.group_of_line_count += 1 - n.destroy + n.delete end end end diff --git a/db/migrate/20130207123618_add_foreign_keys.ninoxe_engine.rb b/db/migrate/20130207123618_add_foreign_keys.ninoxe_engine.rb new file mode 100644 index 000000000..cab9d13f0 --- /dev/null +++ b/db/migrate/20130207123618_add_foreign_keys.ninoxe_engine.rb @@ -0,0 +1,278 @@ +# This migration comes from ninoxe_engine (originally 20130204141720) +require "forwardable" + +class AddForeignKeys < ActiveRecord::Migration + def up + # t.remove_foreign_key does not works if foreign key doesn't exists so check before if keys already exists + change_table :access_links do |t| + if @connection.foreign_keys(:access_links).any? + @connection.foreign_keys(:access_links).map do |f| + name = f.options[:name] + if (name == "aclk_acpt_fkey" || name == "aclk_area_fkey" ) + remove_foreign_key :access_links, :name => name + end + end + end + t.foreign_key :access_points, :dependent => :delete, :name => 'aclk_acpt_fkey' + t.foreign_key :stop_areas, :dependent => :delete, :name => 'aclk_area_fkey' + end + change_table :access_points do |t| + if @connection.foreign_keys(:access_points).any? + @connection.foreign_keys(:access_points).map do |f| + name = f.options[:name] + if (name == "access_area_fkey" ) + remove_foreign_key :access_points, :name => name + end + end + end + t.foreign_key :stop_areas, :dependent => :delete, :name => 'access_area_fkey' + end + change_table :connection_links do |t| + if @connection.foreign_keys(:connection_links).any? + @connection.foreign_keys(:connection_links).map do |f| + name = f.options[:name] + if (name == "colk_endarea_fkey" || name == "colk_startarea_fkey" ) + remove_foreign_key :connection_links, :name => name + end + end + end + t.foreign_key :stop_areas, :dependent => :delete, :column => 'arrival_id', :name => 'colk_endarea_fkey' + t.foreign_key :stop_areas, :dependent => :delete, :column => 'departure_id', :name => 'colk_startarea_fkey' + end + change_table :group_of_lines_lines do |t| + if @connection.foreign_keys(:group_of_lines_lines).any? + @connection.foreign_keys(:group_of_lines_lines).map do |f| + name = f.options[:name] + if (name == "groupofline_group_fkey" || name == "groupofline_line_fkey" ) + remove_foreign_key :group_of_lines_lines, :name => name + end + end + end + t.foreign_key :group_of_lines, :dependent => :delete, :name => 'groupofline_group_fkey' + t.foreign_key :lines, :dependent => :delete, :name => 'groupofline_line_fkey' + end + change_table :journey_patterns do |t| + if @connection.foreign_keys(:journey_patterns).any? + @connection.foreign_keys(:journey_patterns).map do |f| + name = f.options[:name] + if (name == "arrival_point_fkey" || name == "departure_point_fkey" || name == "jp_route_fkey") + remove_foreign_key :journey_patterns, :name => name + end + end + end + t.foreign_key :stop_points, :dependent => :nullify, :column => 'arrival_stop_point_id', :name => 'arrival_point_fkey' + t.foreign_key :stop_points, :dependent => :nullify, :column => 'departure_stop_point_id', :name => 'departure_point_fkey' + t.foreign_key :routes, :dependent => :delete, :name => 'jp_route_fkey' + end + change_table :journey_patterns_stop_points do |t| + if @connection.foreign_keys(:journey_patterns_stop_points).any? + @connection.foreign_keys(:journey_patterns_stop_points).map do |f| + name = f.options[:name] + if (name == "jpsp_jp_fkey" || name == "jpsp_stoppoint_fkey" ) + remove_foreign_key :journey_patterns_stop_points, :name => name + end + end + end + t.foreign_key :journey_patterns, :dependent => :delete, :name => 'jpsp_jp_fkey' + t.foreign_key :stop_points, :dependent => :delete, :name => 'jpsp_stoppoint_fkey' + end + change_table :lines do |t| + if @connection.foreign_keys(:lines).any? + @connection.foreign_keys(:lines).map do |f| + name = f.options[:name] + if (name == "line_company_fkey" || name == "line_ptnetwork_fkey" ) + remove_foreign_key :lines, :name => name + end + end + end + t.foreign_key :companies, :dependent => :nullify, :name => 'line_company_fkey' + t.foreign_key :networks, :dependent => :nullify, :name => 'line_ptnetwork_fkey' + end + change_table :routes do |t| + if @connection.foreign_keys(:routes).any? + @connection.foreign_keys(:routes).map do |f| + name = f.options[:name] + if (name == "route_line_fkey" ) + remove_foreign_key :routes, :name => name + end + end + end + t.foreign_key :lines, :dependent => :delete, :name => 'route_line_fkey' + end + change_table :routing_constraints_lines do |t| + if @connection.foreign_keys(:routing_constraints_lines).any? + @connection.foreign_keys(:routing_constraints_lines).map do |f| + name = f.options[:name] + if (name == "routingconstraint_line_fkey" || name == "routingconstraint_stoparea_fkey" ) + remove_foreign_key :routing_constraints_lines, :name => name + end + end + end + t.foreign_key :lines, :dependent => :delete, :name => 'routingconstraint_line_fkey' + t.foreign_key :stop_areas, :dependent => :delete, :name => 'routingconstraint_stoparea_fkey' + end + change_table :stop_areas do |t| + if @connection.foreign_keys(:stop_areas).any? + @connection.foreign_keys(:stop_areas).map do |f| + name = f.options[:name] + if (name == "area_parent_fkey" ) + remove_foreign_key :stop_areas, :name => name + end + end + end + t.foreign_key :stop_areas, :dependent => :nullify, :column => 'parent_id', :name => 'area_parent_fkey' + end + change_table :stop_areas_stop_areas do |t| + if @connection.foreign_keys(:stop_areas_stop_areas).any? + @connection.foreign_keys(:stop_areas_stop_areas).map do |f| + name = f.options[:name] + if (name == "stoparea_child_fkey" || name == "stoparea_parent_fkey" ) + remove_foreign_key :stop_areas_stop_areas, :name => name + end + end + end + t.foreign_key :stop_areas, :dependent => :delete, :column => 'child_id', :name => 'stoparea_child_fkey' + t.foreign_key :stop_areas, :dependent => :delete, :column => 'parent_id', :name => 'stoparea_parent_fkey' + end + change_table :stop_points do |t| + if @connection.foreign_keys(:stop_points).any? + @connection.foreign_keys(:stop_points).map do |f| + name = f.options[:name] + if (name == "stoppoint_area_fkey" || name == "stoppoint_route_fkey" ) + remove_foreign_key :stop_points, :name => name + end + end + end + t.foreign_key :stop_areas, :name => 'stoppoint_area_fkey' + t.foreign_key :routes, :dependent => :delete, :name => 'stoppoint_route_fkey' + end + change_table :time_table_dates do |t| + if @connection.foreign_keys(:time_table_dates).any? + @connection.foreign_keys(:time_table_dates).map do |f| + name = f.options[:name] + if (name == "tm_date_fkey" ) + remove_foreign_key :time_table_dates, :name => name + end + end + end + t.foreign_key :time_tables, :dependent => :delete, :name => 'tm_date_fkey' + end + change_table :time_table_periods do |t| + if @connection.foreign_keys(:time_table_periods).any? + @connection.foreign_keys(:time_table_periods).map do |f| + name = f.options[:name] + if (name == "tm_period_fkey" ) + remove_foreign_key :time_table_periods, :name => name + end + end + end + t.foreign_key :time_tables, :dependent => :delete, :name => 'tm_period_fkey' + end + change_table :time_tables_vehicle_journeys do |t| + if @connection.foreign_keys(:time_tables_vehicle_journeys).any? + @connection.foreign_keys(:time_tables_vehicle_journeys).map do |f| + name = f.options[:name] + if (name == "vjtm_tm_fkey" || name == "vjtm_vj_fkey" ) + remove_foreign_key :time_tables_vehicle_journeys, :name => name + end + end + end + t.foreign_key :time_tables, :dependent => :delete, :name => 'vjtm_tm_fkey' + t.foreign_key :vehicle_journeys, :dependent => :delete, :name => 'vjtm_vj_fkey' + end + change_table :vehicle_journey_at_stops do |t| + if @connection.foreign_keys(:vehicle_journey_at_stops).any? + @connection.foreign_keys(:vehicle_journey_at_stops).map do |f| + name = f.options[:name] + if (name == "vjas_sp_fkey" || name == "vjas_vj_fkey" ) + remove_foreign_key :vehicle_journey_at_stops, :name => name + end + end + end + t.foreign_key :stop_points, :dependent => :delete, :name => 'vjas_sp_fkey' + t.foreign_key :vehicle_journeys, :dependent => :delete, :name => 'vjas_vj_fkey' + end + change_table :vehicle_journeys do |t| + if @connection.foreign_keys(:vehicle_journeys).any? + @connection.foreign_keys(:vehicle_journeys).map do |f| + name = f.options[:name] + if (name == "vj_company_fkey" || name == "vj_jp_fkey" || name == "vj_route_fkey") + remove_foreign_key :vehicle_journeys, :name => name + end + end + end + t.foreign_key :companies, :dependent => :nullify, :name => 'vj_company_fkey' + t.foreign_key :journey_patterns, :dependent => :delete, :name => 'vj_jp_fkey' + t.foreign_key :routes, :dependent => :delete, :name => 'vj_route_fkey' + end + + end + + def down + change_table :access_links do |t| + t.remove_foreign_key :name => :aclk_acpt_fkey + t.remove_foreign_key :name => :aclk_area_fkey + end + change_table :access_points do |t| + t.remove_foreign_key :name => :access_area_fkey + end + change_table :connection_links do |t| + t.remove_foreign_key :name => :colk_endarea_fkey + t.remove_foreign_key :name => :colk_startarea_fkey + end + change_table :group_of_lines_lines do |t| + t.remove_foreign_key :name => :groupofline_group_fkey + t.remove_foreign_key :name => :groupofline_line_fkey + end + change_table :journey_patterns do |t| + t.remove_foreign_key :name => :arrival_point_fkey + t.remove_foreign_key :name => :departure_point_fkey + t.remove_foreign_key :name => :jp_route_fkey + end + change_table :journey_patterns_stop_points do |t| + t.remove_foreign_key :name => :jpsp_jp_fkey + t.remove_foreign_key :name => :jpsp_stoppoint_fkey + end + change_table :lines do |t| + t.remove_foreign_key :name => :line_company_fkey + t.remove_foreign_key :name => :line_ptnetwork_fkey + end + change_table :routes do |t| + t.remove_foreign_key :name => :route_line_fkey + end + change_table :routing_constraints_lines do |t| + t.remove_foreign_key :name => :routingconstraint_line_fkey + t.remove_foreign_key :name => :routingconstraint_stoparea_fkey + end + change_table :stop_areas do |t| + t.remove_foreign_key :name => :area_parent_fkey + end + change_table :stop_areas_stop_areas do |t| + t.remove_foreign_key :name => :stoparea_child_fkey + t.remove_foreign_key :name => :stoparea_parent_fkey + end + change_table :stop_points do |t| + t.remove_foreign_key :name => :stoppoint_area_fkey + t.remove_foreign_key :name => :stoppoint_route_fkey + end + change_table :time_table_dates do |t| + t.remove_foreign_key :name => :tm_date_fkey + end + change_table :time_table_periods do |t| + t.remove_foreign_key :name => :tm_period_fkey + end + change_table :time_tables_vehicle_journeys do |t| + t.remove_foreign_key :name => :vjtm_tm_fkey + t.remove_foreign_key :name => :vjtm_vj_fkey + end + change_table :vehicle_journey_at_stops do |t| + t.remove_foreign_key :name => :vjas_sp_fkey + t.remove_foreign_key :name => :vjas_vj_fkey + end + change_table :vehicle_journeys do |t| + t.remove_foreign_key :name => :vj_company_fkey + t.remove_foreign_key :name => :vj_jp_fkey + t.remove_foreign_key :name => :vj_route_fkey + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 7be6c3f3d..2b372d0b4 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20121211085620) do +ActiveRecord::Schema.define(:version => 20130207123618) do create_table "access_links", :force => true do |t| t.integer "access_point_id", :limit => 8 @@ -527,4 +527,52 @@ ActiveRecord::Schema.define(:version => 20121211085620) do add_index "vehicle_journeys", ["objectid"], :name => "vehicle_journeys_objectid_key", :unique => true add_index "vehicle_journeys", ["route_id"], :name => "index_vehicle_journeys_on_route_id" + add_foreign_key "access_links", "access_points", :name => "aclk_acpt_fkey", :dependent => :delete + add_foreign_key "access_links", "stop_areas", :name => "aclk_area_fkey", :dependent => :delete + + add_foreign_key "access_points", "stop_areas", :name => "access_area_fkey", :dependent => :delete + + add_foreign_key "connection_links", "stop_areas", :name => "colk_endarea_fkey", :column => "arrival_id", :dependent => :delete + add_foreign_key "connection_links", "stop_areas", :name => "colk_startarea_fkey", :column => "departure_id", :dependent => :delete + + add_foreign_key "group_of_lines_lines", "group_of_lines", :name => "groupofline_group_fkey", :dependent => :delete + add_foreign_key "group_of_lines_lines", "lines", :name => "groupofline_line_fkey", :dependent => :delete + + add_foreign_key "journey_patterns", "routes", :name => "jp_route_fkey", :dependent => :delete + add_foreign_key "journey_patterns", "stop_points", :name => "arrival_point_fkey", :column => "arrival_stop_point_id", :dependent => :nullify + add_foreign_key "journey_patterns", "stop_points", :name => "departure_point_fkey", :column => "departure_stop_point_id", :dependent => :nullify + + add_foreign_key "journey_patterns_stop_points", "journey_patterns", :name => "jpsp_jp_fkey", :dependent => :delete + add_foreign_key "journey_patterns_stop_points", "stop_points", :name => "jpsp_stoppoint_fkey", :dependent => :delete + + add_foreign_key "lines", "companies", :name => "line_company_fkey", :dependent => :nullify + add_foreign_key "lines", "networks", :name => "line_ptnetwork_fkey", :dependent => :nullify + + add_foreign_key "routes", "lines", :name => "route_line_fkey", :dependent => :delete + + add_foreign_key "routing_constraints_lines", "lines", :name => "routingconstraint_line_fkey", :dependent => :delete + add_foreign_key "routing_constraints_lines", "stop_areas", :name => "routingconstraint_stoparea_fkey", :dependent => :delete + + add_foreign_key "stop_areas", "stop_areas", :name => "area_parent_fkey", :column => "parent_id", :dependent => :nullify + + add_foreign_key "stop_areas_stop_areas", "stop_areas", :name => "stoparea_child_fkey", :column => "child_id", :dependent => :delete + add_foreign_key "stop_areas_stop_areas", "stop_areas", :name => "stoparea_parent_fkey", :column => "parent_id", :dependent => :delete + + add_foreign_key "stop_points", "routes", :name => "stoppoint_route_fkey", :dependent => :delete + add_foreign_key "stop_points", "stop_areas", :name => "stoppoint_area_fkey" + + add_foreign_key "time_table_dates", "time_tables", :name => "tm_date_fkey", :dependent => :delete + + add_foreign_key "time_table_periods", "time_tables", :name => "tm_period_fkey", :dependent => :delete + + add_foreign_key "time_tables_vehicle_journeys", "time_tables", :name => "vjtm_tm_fkey", :dependent => :delete + add_foreign_key "time_tables_vehicle_journeys", "vehicle_journeys", :name => "vjtm_vj_fkey", :dependent => :delete + + add_foreign_key "vehicle_journey_at_stops", "stop_points", :name => "vjas_sp_fkey", :dependent => :delete + add_foreign_key "vehicle_journey_at_stops", "vehicle_journeys", :name => "vjas_vj_fkey", :dependent => :delete + + add_foreign_key "vehicle_journeys", "companies", :name => "vj_company_fkey", :dependent => :nullify + add_foreign_key "vehicle_journeys", "journey_patterns", :name => "vj_jp_fkey", :dependent => :delete + add_foreign_key "vehicle_journeys", "routes", :name => "vj_route_fkey", :dependent => :delete + end |
