diff --git a/Gemfile b/Gemfile index a2baa859..7f33f394 100644 --- a/Gemfile +++ b/Gemfile @@ -81,6 +81,9 @@ group :development do gem "nested_scaffold" gem "rack-livereload" # gem 'reek', require: false + gem "dexter" + gem "pghero" + gem "pg_query", ">= 2" gem "rubocop", require: false gem "seed_dump" gem "solargraph-reek" diff --git a/Gemfile.lock b/Gemfile.lock index ed24dfec..f54a3569 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -137,6 +137,8 @@ GEM database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) date (3.3.4) + dexter (0.1.0) + trollop diff-lcs (1.5.0) docile (1.4.0) dotenv (2.8.1) @@ -177,6 +179,7 @@ GEM activerecord (>= 4.0.0) globalid (1.2.1) activesupport (>= 6.1) + google-protobuf (3.25.1) guard (2.18.1) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -283,6 +286,10 @@ GEM ast (~> 2.4.1) racc pg (1.5.4) + pg_query (5.0.0) + google-protobuf (>= 3.22.3) + pghero (3.4.0) + activerecord (>= 6) pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) @@ -449,6 +456,7 @@ GEM tilt (2.3.0) timecop (0.9.8) timeout (0.4.1) + trollop (2.9.10) turbo-rails (1.5.0) actionpack (>= 6.0.0) activejob (>= 6.0.0) @@ -490,6 +498,7 @@ DEPENDENCIES cuprite database_cleaner devise! + dexter dotenv-rails ed25519 erb_lint @@ -509,8 +518,11 @@ DEPENDENCIES net-sftp newrelic_rpm nokogiri + omniauth parallel_tests pg + pg_query (>= 2) + pghero puma (>= 6.4.0) rack-livereload rack-mini-profiler diff --git a/config/routes.rb b/config/routes.rb index 89938038..75425a86 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -25,7 +25,7 @@ Rails.application.routes.draw do resources :districts do resources :schools, only: %i[index show] do resources :overview, only: [:index] - resources :categories, only: [:show], path: 'browse' + resources :categories, only: [:show], path: "browse" resources :analyze, only: [:index] end end @@ -35,7 +35,11 @@ Rails.application.routes.draw do get 'users', to: 'legacy/users#show', as: :user_root # Rails 3 end # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html + get :reports, to: "reports#index" + get "reports/gps", to: "gps#index" get '/welcome', to: 'home#index' root to: 'legacy/welcome#index' + + # mount PgHero::Engine, at: "pghero" # remove in development env to see suggestions at localhost:3000/pghero end diff --git a/db/migrate/20231227183313_remove_unneeded_indexes.rb b/db/migrate/20231227183313_remove_unneeded_indexes.rb new file mode 100644 index 00000000..b6d3c899 --- /dev/null +++ b/db/migrate/20231227183313_remove_unneeded_indexes.rb @@ -0,0 +1,8 @@ +class RemoveUnneededIndexes < ActiveRecord::Migration[7.1] + def change + remove_index :student_races, name: "index_student_races_on_student_id", column: :student_id + remove_index :survey_item_responses, name: "index_survey_item_responses_on_school_id", column: :school_id + remove_index :survey_item_responses, name: "index_survey_item_responses_on_school_id_and_academic_year_id", + column: %i[school_id academic_year_id] + end +end diff --git a/db/schema.rb b/db/schema.rb index f60f9a19..64ca755a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2023_10_04_211430) do +ActiveRecord::Schema[7.1].define(version: 2023_12_27_183313) do # These are extensions that must be enabled in order to support this database enable_extension "pg_stat_statements" enable_extension "plpgsql" @@ -421,7 +421,6 @@ ActiveRecord::Schema[7.1].define(version: 2023_10_04_211430) do t.datetime "updated_at", null: false t.index ["race_id"], name: "index_student_races_on_race_id" t.index ["student_id", "race_id"], name: "index_student_races_on_student_id_and_race_id" - t.index ["student_id"], name: "index_student_races_on_student_id" end create_table "students", force: :cascade do |t| @@ -463,9 +462,7 @@ ActiveRecord::Schema[7.1].define(version: 2023_10_04_211430) do t.index ["income_id"], name: "index_survey_item_responses_on_income_id" t.index ["response_id"], name: "index_survey_item_responses_on_response_id" t.index ["school_id", "academic_year_id", "survey_item_id"], name: "by_school_year_and_survey_item" - t.index ["school_id", "academic_year_id"], name: "index_survey_item_responses_on_school_id_and_academic_year_id" t.index ["school_id", "survey_item_id", "academic_year_id", "grade"], name: "index_survey_responses_on_grade" - t.index ["school_id"], name: "index_survey_item_responses_on_school_id" t.index ["sped_id"], name: "index_survey_item_responses_on_sped_id" t.index ["student_id"], name: "index_survey_item_responses_on_student_id" t.index ["survey_item_id"], name: "index_survey_item_responses_on_survey_item_id"