Last active
December 11, 2015 18:29
-
-
Save seejee/4641906 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Pathway.create uses the wrong shard: | |
Loading development environment (Rails 3.2.11) | |
1.9.3-p327 :001 > RequestStore.store[:shard_name] = "enrollments_shard_one" | |
=> "enrollments_shard_one" | |
1.9.3-p327 :002 > current_user = User.find(99) | |
User Load (4.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 99]] | |
=> #<User id: 99, email: "rondo-custadmin@thinkthroughmath.com", encrypted_password: "$2a$10$7enmwB6QbwEjp9Ae6mjC4O3iySBxU3UBEIEeJxzw84hb...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 9, current_sign_in_at: "2013-01-15 16:37:02", last_sign_in_at: "2012-12-21 18:28:36", current_sign_in_ip: "204.16.243.194", last_sign_in_ip: "204.16.243.194", created_at: "2012-08-01 16:44:01", updated_at: "2013-01-15 16:37:02", role: "customer admin", username: nil, first_name: "Ryan", last_name: "Ondo", max_students: nil, nickname: nil, second_language: nil, state_id: nil, invitation_accepted_at: nil, invitation_token: nil, account_sponsor_email: nil, account_sponsor_name: nil, active: true, zip_code: nil, phone_number: nil, street_address: nil, city: nil, ip_address: nil, school_district_provider_id: nil> | |
1.9.3-p327 :003 > state = State.find_by_code('PA'); grade_level_id = GradeLevel.first.id | |
State Load (0.6ms) SELECT "states".* FROM "states" WHERE "states"."code" = 'PA' LIMIT 1 | |
GradeLevel Load (0.3ms) SELECT "grade_levels".* FROM "grade_levels" LIMIT 1 | |
=> 1 | |
1.9.3-p327 :004 > pathway = Pathway.create!(name: 'mine', state: state, demo: true, creator: current_user, grade_level_id: grade_level_id) | |
[enrollments_shard_four] (0.3ms) BEGIN | |
(0.5ms) SELECT NEXTVAL('pathways_id_seq') | |
[enrollments_shard_four] SQL (0.8ms) INSERT INTO "pathways" ("allow_test_out", "created_at", "creator_id", "customer_id", "demo", "grade_level_id", "id", "name", "published", "require_pre_quiz", "skip_problem_solving_process", "state_id", "updated_at", "use_placement_test", "use_remediation") VALUES ('t', '2013-01-26 12:11:51.328186', 99, 1, 't', 1, 45234, 'mine', 'f', 'f', 'f', 40, '2013-01-26 12:11:51.328186', 't', 't') RETURNING "id" | |
[enrollments_shard_four] (0.1ms) COMMIT | |
=> #<Pathway id: 45234, created_at: "2013-01-26 12:11:51", updated_at: "2013-01-26 12:11:51", name: "mine", grade_level_id: 1, state_id: 40, use_placement_test: true, skip_problem_solving_process: false, allow_test_out: true, require_pre_quiz: false, creator_id: 99, customer_id: 1, use_remediation: true, published: false, demo: true> | |
But, querying for Lesson first switches to the right shard: | |
Loading development environment (Rails 3.2.11) | |
1.9.3-p327 :001 > RequestStore.store[:shard_name] = "enrollments_shard_one" | |
=> "enrollments_shard_one" | |
1.9.3-p327 :002 > current_user = User.find(99) | |
User Load (4.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 99]] | |
=> #<User id: 99, email: "rondo-custadmin@thinkthroughmath.com", encrypted_password: "$2a$10$7enmwB6QbwEjp9Ae6mjC4O3iySBxU3UBEIEeJxzw84hb...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 9, current_sign_in_at: "2013-01-15 16:37:02", last_sign_in_at: "2012-12-21 18:28:36", current_sign_in_ip: "204.16.243.194", last_sign_in_ip: "204.16.243.194", created_at: "2012-08-01 16:44:01", updated_at: "2013-01-15 16:37:02", role: "customer admin", username: nil, first_name: "Ryan", last_name: "Ondo", max_students: nil, nickname: nil, second_language: nil, state_id: nil, invitation_accepted_at: nil, invitation_token: nil, account_sponsor_email: nil, account_sponsor_name: nil, active: true, zip_code: nil, phone_number: nil, street_address: nil, city: nil, ip_address: nil, school_district_provider_id: nil> | |
1.9.3-p327 :003 > state = State.find_by_code('PA'); grade_level_id = GradeLevel.first.id | |
State Load (0.7ms) SELECT "states".* FROM "states" WHERE "states"."code" = 'PA' LIMIT 1 | |
GradeLevel Load (0.4ms) SELECT "grade_levels".* FROM "grade_levels" LIMIT 1 | |
=> 1 | |
1.9.3-p327 :004 > Lesson.first.id | |
(0.4ms) set application_name = 'apangeas_without_pool'; | |
[enrollments_shard_one] (0.1ms) set application_name = 'apangeas_with_pool_1'; | |
[enrollments_shard_one] Lesson Load (1.2ms) SELECT "lessons".* FROM "lessons" LIMIT 1 | |
=> 20 | |
1.9.3-p327 :005 > pathway = Pathway.create!(name: 'mine', state: state, demo: true, creator: current_user, grade_level_id: grade_level_id) | |
[enrollments_shard_one] (0.2ms) BEGIN | |
(0.6ms) SELECT NEXTVAL('pathways_id_seq') | |
[enrollments_shard_one] SQL (4.9ms) INSERT INTO "pathways" ("allow_test_out", "created_at", "creator_id", "customer_id", "demo", "grade_level_id", "id", "name", "published", "require_pre_quiz", "skip_problem_solving_process", "state_id", "updated_at", "use_placement_test", "use_remediation") VALUES ('t', '2013-01-26 12:13:18.180138', 99, 1, 't', 1, 45235, 'mine', 'f', 'f', 'f', 40, '2013-01-26 12:13:18.180138', 't', 't') RETURNING "id" | |
[enrollments_shard_one] (0.2ms) COMMIT | |
=> #<Pathway id: 45235, created_at: "2013-01-26 12:13:18", updated_at: "2013-01-26 12:13:18", name: "mine", grade_level_id: 1, state_id: 40, use_placement_test: true, skip_problem_solving_process: false, allow_test_out: true, require_pre_quiz: false, creator_id: 99, customer_id: 1, use_remediation: true, published: false, demo: true> | |
Changing Pathway so that all the belongs_to are belongs_to_in_shard: | |
Loading development environment (Rails 3.2.11) | |
1.9.3-p327 :001 > RequestStore.store[:shard_name] = "enrollments_shard_one" | |
=> "enrollments_shard_one" | |
1.9.3-p327 :002 > current_user = User.find(99) | |
User Load (4.3ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 99]] | |
=> #<User id: 99, email: "rondo-custadmin@thinkthroughmath.com", encrypted_password: "$2a$10$7enmwB6QbwEjp9Ae6mjC4O3iySBxU3UBEIEeJxzw84hb...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 9, current_sign_in_at: "2013-01-15 16:37:02", last_sign_in_at: "2012-12-21 18:28:36", current_sign_in_ip: "204.16.243.194", last_sign_in_ip: "204.16.243.194", created_at: "2012-08-01 16:44:01", updated_at: "2013-01-15 16:37:02", role: "customer admin", username: nil, first_name: "Ryan", last_name: "Ondo", max_students: nil, nickname: nil, second_language: nil, state_id: nil, invitation_accepted_at: nil, invitation_token: nil, account_sponsor_email: nil, account_sponsor_name: nil, active: true, zip_code: nil, phone_number: nil, street_address: nil, city: nil, ip_address: nil, school_district_provider_id: nil> | |
1.9.3-p327 :003 > state = State.find_by_code('PA'); grade_level_id = GradeLevel.first.id | |
State Load (0.8ms) SELECT "states".* FROM "states" WHERE "states"."code" = 'PA' LIMIT 1 | |
GradeLevel Load (0.5ms) SELECT "grade_levels".* FROM "grade_levels" LIMIT 1 | |
=> 1 | |
1.9.3-p327 :004 > pathway = Pathway.create!(name: 'mine', state: state, demo: true, creator: current_user, grade_level_id: grade_level_id) | |
[enrollments_shard_four] (0.3ms) BEGIN | |
(0.5ms) SELECT NEXTVAL('pathways_id_seq') | |
(0.2ms) set application_name = 'apangeas_without_pool'; | |
[enrollments_shard_one] (0.1ms) set application_name = 'apangeas_with_pool_1'; | |
[enrollments_shard_one] SQL (1.2ms) INSERT INTO "pathways" ("allow_test_out", "created_at", "creator_id", "customer_id", "demo", "grade_level_id", "id", "name", "published", "require_pre_quiz", "skip_problem_solving_process", "state_id", "updated_at", "use_placement_test", "use_remediation") VALUES ('t', '2013-01-26 12:22:04.859104', 99, 1, 't', 1, 45239, 'mine', 'f', 'f', 'f', 40, '2013-01-26 12:22:04.859104', 't', 't') RETURNING "id" | |
[enrollments_shard_four] (0.1ms) COMMIT | |
=> #<Pathway id: 45239, created_at: "2013-01-26 12:22:04", updated_at: "2013-01-26 12:22:04", name: "mine", grade_level_id: 1, state_id: 40, use_placement_test: true, skip_problem_solving_process: false, allow_test_out: true, require_pre_quiz: false, creator_id: 99, customer_id: 1, use_remediation: true, published: false, demo: true> | |
The shard was never set in RequestStore, but a Pathway can still be created: | |
Loading development environment (Rails 3.2.11) | |
1.9.3-p327 :001 > current_user = User.find(6) | |
User Load (4.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 6]] | |
=> #<User id: 6, email: "teacher@example.com", encrypted_password: "$2a$10$tCfwHNgdfElvY/7MV49hIev5e3Zj8D7K/dUttQwtQ7gf...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 121, current_sign_in_at: "2013-01-22 22:34:15", last_sign_in_at: "2013-01-14 21:37:26", current_sign_in_ip: "127.0.0.1", last_sign_in_ip: "204.16.243.194", created_at: "2012-07-18 18:46:44", updated_at: "2013-01-22 22:34:15", role: "teacher", username: nil, first_name: "Seeded", last_name: "Teacher", max_students: nil, nickname: nil, second_language: nil, state_id: nil, invitation_accepted_at: nil, invitation_token: nil, account_sponsor_email: nil, account_sponsor_name: nil, active: true, zip_code: nil, phone_number: nil, street_address: nil, city: nil, ip_address: nil, school_district_provider_id: nil> | |
1.9.3-p327 :002 > state = State.find_by_code('PA'); grade_level_id = GradeLevel.first.id | |
State Load (0.7ms) SELECT "states".* FROM "states" WHERE "states"."code" = 'PA' LIMIT 1 | |
GradeLevel Load (0.4ms) SELECT "grade_levels".* FROM "grade_levels" LIMIT 1 | |
=> 1 | |
1.9.3-p327 :003 > pathway = Pathway.create!(name: 'mine', state: state, demo: true, creator: current_user, grade_level_id: grade_level_id) | |
[enrollments_shard_four] (0.3ms) BEGIN | |
(0.4ms) SELECT customer_id FROM "customer_administrations" WHERE "customer_administrations"."user_id" = 6 | |
(0.7ms) SELECT customer_id FROM "districts" INNER JOIN "district_administrations" ON "districts"."id" = "district_administrations"."district_id" WHERE "district_administrations"."user_id" = 6 | |
(0.7ms) SELECT customer_id FROM "schools" INNER JOIN "school_administrations" ON "schools"."id" = "school_administrations"."school_id" WHERE "school_administrations"."user_id" = 6 | |
(1.1ms) SELECT customer_id FROM "schools" INNER JOIN "classrooms" ON "schools"."id" = "classrooms"."school_id" INNER JOIN "classroom_teachings" ON "classrooms"."id" = "classroom_teachings"."classroom_id" WHERE "classroom_teachings"."user_id" = 6 | |
(0.6ms) SELECT customer_id FROM "schools" INNER JOIN "school_assignments" ON "schools"."id" = "school_assignments"."school_id" WHERE "school_assignments"."user_id" = 6 | |
(0.4ms) SELECT NEXTVAL('pathways_id_seq') | |
[enrollments_shard_four] SQL (0.8ms) INSERT INTO "pathways" ("allow_test_out", "created_at", "creator_id", "customer_id", "demo", "grade_level_id", "id", "name", "published", "require_pre_quiz", "skip_problem_solving_process", "state_id", "updated_at", "use_placement_test", "use_remediation") VALUES ('t', '2013-01-26 12:54:24.720507', 6, 1, 't', 1, 45244, 'mine', 'f', 'f', 'f', 40, '2013-01-26 12:54:24.720507', 't', 't') RETURNING "id" | |
[enrollments_shard_four] (0.2ms) COMMIT | |
=> #<Pathway id: 45244, created_at: "2013-01-26 12:54:24", updated_at: "2013-01-26 12:54:24", name: "mine", grade_level_id: 1, state_id: 40, use_placement_test: true, skip_problem_solving_process: false, allow_test_out: true, require_pre_quiz: false, creator_id: 6, customer_id: 1, use_remediation: true, published: false, demo: true> | |
1.9.3-p327 :004 > |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment