diff --git a/db/migrate/20170212123435_add_polls_related_indexes.rb b/db/migrate/20170212123435_add_polls_related_indexes.rb new file mode 100644 index 000000000..f1a667432 --- /dev/null +++ b/db/migrate/20170212123435_add_polls_related_indexes.rb @@ -0,0 +1,36 @@ +class AddPollsRelatedIndexes < ActiveRecord::Migration + def change + + add_index :poll_booth_assignments, :booth_id + add_index :poll_booth_assignments, :poll_id + + add_index :poll_final_recounts, :officer_assignment_id + + add_index :poll_officer_assignments, :booth_assignment_id + add_index :poll_officer_assignments, :officer_id + add_index :poll_officer_assignments, [:officer_id, :date] + + add_index :poll_officers, :user_id + + add_index :poll_voters, :booth_assignment_id + add_index :poll_voters, :officer_assignment_id + + add_index :polls, [:starts_at, :ends_at] + + + add_foreign_key :poll_answers, :poll_questions, column: :question_id + add_foreign_key :poll_booth_assignments, :polls + add_foreign_key :poll_final_recounts, :poll_booth_assignments, column: :booth_assignment_id + add_foreign_key :poll_final_recounts, :poll_officer_assignments, column: :officer_assignment_id + add_foreign_key :poll_null_results, :poll_booth_assignments, column: :booth_assignment_id + add_foreign_key :poll_null_results, :poll_officer_assignments, column: :officer_assignment_id + add_foreign_key :poll_white_results, :poll_booth_assignments, column: :booth_assignment_id + add_foreign_key :poll_white_results, :poll_officer_assignments, column: :officer_assignment_id + add_foreign_key :poll_officer_assignments, :poll_booth_assignments, column: :booth_assignment_id + add_foreign_key :poll_partial_results, :poll_booth_assignments, column: :booth_assignment_id + add_foreign_key :poll_partial_results, :poll_officer_assignments, column: :officer_assignment_id + add_foreign_key :poll_voters, :polls + add_foreign_key :poll_recounts, :poll_booth_assignments, column: :booth_assignment_id + add_foreign_key :poll_recounts, :poll_officer_assignments, column: :officer_assignment_id + end +end diff --git a/db/schema.rb b/db/schema.rb index d765a7c1d..8f61e2c3a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170208160130) do +ActiveRecord::Schema.define(version: 20170212123435) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -393,6 +393,9 @@ ActiveRecord::Schema.define(version: 20170208160130) do t.datetime "updated_at", null: false end + add_index "poll_booth_assignments", ["booth_id"], name: "index_poll_booth_assignments_on_booth_id", using: :btree + add_index "poll_booth_assignments", ["poll_id"], name: "index_poll_booth_assignments_on_poll_id", using: :btree + create_table "poll_booths", force: :cascade do |t| t.string "name" t.string "location" @@ -410,6 +413,7 @@ ActiveRecord::Schema.define(version: 20170208160130) do end add_index "poll_final_recounts", ["booth_assignment_id"], name: "index_poll_final_recounts_on_booth_assignment_id", using: :btree + add_index "poll_final_recounts", ["officer_assignment_id"], name: "index_poll_final_recounts_on_officer_assignment_id", using: :btree create_table "poll_null_results", force: :cascade do |t| t.integer "author_id" @@ -436,10 +440,16 @@ ActiveRecord::Schema.define(version: 20170208160130) do t.string "user_data_log", default: "" end + add_index "poll_officer_assignments", ["booth_assignment_id"], name: "index_poll_officer_assignments_on_booth_assignment_id", using: :btree + add_index "poll_officer_assignments", ["officer_id", "date"], name: "index_poll_officer_assignments_on_officer_id_and_date", using: :btree + add_index "poll_officer_assignments", ["officer_id"], name: "index_poll_officer_assignments_on_officer_id", using: :btree + create_table "poll_officers", force: :cascade do |t| t.integer "user_id" end + add_index "poll_officers", ["user_id"], name: "index_poll_officers_on_user_id", using: :btree + create_table "poll_partial_results", force: :cascade do |t| t.integer "question_id" t.integer "author_id" @@ -509,7 +519,9 @@ ActiveRecord::Schema.define(version: 20170208160130) do t.integer "user_id" end + add_index "poll_voters", ["booth_assignment_id"], name: "index_poll_voters_on_booth_assignment_id", using: :btree add_index "poll_voters", ["document_number"], name: "index_poll_voters_on_document_number", using: :btree + add_index "poll_voters", ["officer_assignment_id"], name: "index_poll_voters_on_officer_assignment_id", using: :btree add_index "poll_voters", ["poll_id", "document_number", "document_type"], name: "doc_by_poll", using: :btree add_index "poll_voters", ["poll_id"], name: "index_poll_voters_on_poll_id", using: :btree add_index "poll_voters", ["user_id"], name: "index_poll_voters_on_user_id", using: :btree @@ -537,6 +549,8 @@ ActiveRecord::Schema.define(version: 20170208160130) do t.boolean "geozone_restricted", default: false end + add_index "polls", ["starts_at", "ends_at"], name: "index_polls_on_starts_at_and_ends_at", using: :btree + create_table "proposal_notifications", force: :cascade do |t| t.string "title" t.text "body" @@ -852,11 +866,25 @@ ActiveRecord::Schema.define(version: 20170208160130) do add_foreign_key "moderators", "users" add_foreign_key "notifications", "users" add_foreign_key "organizations", "users" + add_foreign_key "poll_answers", "poll_questions", column: "question_id" + add_foreign_key "poll_booth_assignments", "polls" + add_foreign_key "poll_final_recounts", "poll_booth_assignments", column: "booth_assignment_id" + add_foreign_key "poll_final_recounts", "poll_officer_assignments", column: "officer_assignment_id" + add_foreign_key "poll_null_results", "poll_booth_assignments", column: "booth_assignment_id" + add_foreign_key "poll_null_results", "poll_officer_assignments", column: "officer_assignment_id" + add_foreign_key "poll_officer_assignments", "poll_booth_assignments", column: "booth_assignment_id" + add_foreign_key "poll_partial_results", "poll_booth_assignments", column: "booth_assignment_id" + add_foreign_key "poll_partial_results", "poll_officer_assignments", column: "officer_assignment_id" add_foreign_key "poll_partial_results", "poll_questions", column: "question_id" add_foreign_key "poll_partial_results", "users", column: "author_id" add_foreign_key "poll_questions", "polls" add_foreign_key "poll_questions", "proposals" add_foreign_key "poll_questions", "users", column: "author_id" + add_foreign_key "poll_recounts", "poll_booth_assignments", column: "booth_assignment_id" + add_foreign_key "poll_recounts", "poll_officer_assignments", column: "officer_assignment_id" + add_foreign_key "poll_voters", "polls" + add_foreign_key "poll_white_results", "poll_booth_assignments", column: "booth_assignment_id" + add_foreign_key "poll_white_results", "poll_officer_assignments", column: "officer_assignment_id" add_foreign_key "users", "geozones" add_foreign_key "valuators", "users" end