Skip to content

Commit 0a20dbb

Browse files
committed
Add counter cache for course submissions
1 parent ec4ac67 commit 0a20dbb

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

app/models/submission.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class Submission < ActiveRecord::Base
5858
end
5959

6060
belongs_to :user
61-
belongs_to :course
61+
belongs_to :course, counter_cache: true
6262

6363
belongs_to :exercise,
6464
(lambda do |submission|
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class AddSubmissionsCountToCourses < ActiveRecord::Migration
2+
def change
3+
add_column :courses, :submissions_count, :integer, default: 0, null: false
4+
end
5+
end

db/schema.rb

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#
1212
# It's strongly recommended that you check this file into your version control system.
1313

14-
ActiveRecord::Schema.define(version: 20190903072551) do
14+
ActiveRecord::Schema.define(version: 20200112230121) do
1515

1616
# These are extensions that must be enabled in order to support this database
1717
enable_extension "plpgsql"
@@ -127,6 +127,8 @@
127127
t.integer "grant_model_solution_token_every_nth_completed_exercise"
128128
t.integer "initial_coin_stash"
129129
t.boolean "large_exercises_consume_more_coins", default: false
130+
t.string "moocfi_id"
131+
t.integer "submissions_count", default: 0, null: false
130132
end
131133

132134
add_index "courses", ["course_template_id"], name: "index_courses_on_course_template_id", using: :btree
@@ -184,6 +186,14 @@
184186

185187
add_index "feedback_questions", ["course_id"], name: "index_feedback_questions_on_course_id", using: :btree
186188

189+
create_table "kafka_batch_update_points", force: :cascade do |t|
190+
t.integer "course_id"
191+
t.datetime "created_at"
192+
t.datetime "updated_at"
193+
end
194+
195+
add_index "kafka_batch_update_points", ["course_id"], name: "index_kafka_batch_update_points_on_course_id", using: :btree
196+
187197
create_table "migrated_submissions", id: false, force: :cascade do |t|
188198
t.integer "from_course_id"
189199
t.integer "to_course_id"
@@ -210,8 +220,9 @@
210220
t.integer "user_id"
211221
t.integer "course_id"
212222
t.string "exercise_name"
213-
t.datetime "created_at", null: false
214-
t.datetime "updated_at", null: false
223+
t.datetime "created_at", null: false
224+
t.datetime "updated_at", null: false
225+
t.integer "cost", default: 1, null: false
215226
end
216227

217228
add_index "model_solution_token_useds", ["course_id"], name: "index_model_solution_token_useds_on_course_id", using: :btree
@@ -492,6 +503,7 @@
492503
add_foreign_key "feedback_answers", "feedback_questions", on_delete: :cascade
493504
add_foreign_key "feedback_answers", "submissions", on_delete: :nullify
494505
add_foreign_key "feedback_questions", "courses", on_delete: :cascade
506+
add_foreign_key "kafka_batch_update_points", "courses"
495507
add_foreign_key "model_solution_token_useds", "courses"
496508
add_foreign_key "model_solution_token_useds", "users"
497509
add_foreign_key "reviews", "submissions", on_delete: :cascade

0 commit comments

Comments
 (0)