coalescing_panda 4.1.3 → 4.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e96f6742c3b9f341c55657f468786ac3b87383cb
4
- data.tar.gz: 07354892371fb63e3b9a054a0c0cd117a824f9c9
3
+ metadata.gz: b9eae33c2d12ac264562074a69a6b3414176c275
4
+ data.tar.gz: 9fd1f9aa7a270ccfe68a619d2a4878dea2b80d19
5
5
  SHA512:
6
- metadata.gz: 432afd8d2c1779dca9f1c1b49de303e1c911ab7cf93bdbfda0057f45ebebb4e220f84cca9261c0ed1c3d76a9502bbfaf5250a82efb40e582323d8cf5c943bf7b
7
- data.tar.gz: d0c222b5d6140a5ad01738042395a8c1b8bb9407bf9a774677f4862c0e3c903750a538301246eb4ba3f94c0784bff92f7988379d47c0e992c75a6069c87ea8a9
6
+ metadata.gz: 21dd37a77ac2f53e262e344625be37ee82648d721b883f66f3e9d53ae88659158662082c51e090dd875cfbc621011b0376e0f6348b9dbda4a197e72bf012066f
7
+ data.tar.gz: 62cc2e004392e24b9e4a86d23be6ab2fbc8d5798809299ceac0e47e46b607e22b2bcdaeea4607009d10937ab46f1388817dac4bed9a8c37ab19ddfc1b008c8bc
@@ -1,6 +1,8 @@
1
1
  module CoalescingPanda
2
2
  class CanvasBatch < ActiveRecord::Base
3
+ belongs_to :account, foreign_key: :coalescing_panda_lti_account_id, class_name: 'CoalescingPanda::LtiAccount'
3
4
  belongs_to :context, polymorphic: true
5
+
4
6
  default_scope { order('created_at DESC') }
5
7
  end
6
8
  end
@@ -6,6 +6,7 @@ module CoalescingPanda
6
6
  has_many :terms, foreign_key: :coalescing_panda_lti_account_id, class_name: 'CoalescingPanda::Term'
7
7
  has_many :courses, foreign_key: :coalescing_panda_lti_account_id, class_name: 'CoalescingPanda::Course'
8
8
  has_many :users, foreign_key: :coalescing_panda_lti_account_id, class_name: 'CoalescingPanda::User'
9
+ has_many :canvas_batches, foreign_key: :coalescing_panda_lti_account_id, class_name: 'CoalescingPanda::CanvasBatch'
9
10
  has_many :sections, through: :courses
10
11
  has_many :enrollments, through: :sections
11
12
  has_many :assignments, through: :courses
@@ -1,5 +1,7 @@
1
1
  class CoalescingPanda::Workers::CourseMiner
2
2
  SUPPORTED_MODELS = [:sections, :users, :enrollments, :assignment_groups, :assignments, :submissions, :groups, :group_memberships] #ORDER MATTERS!!
3
+ COMPLETED_STATUSES = ['Completed', 'Error']
4
+ RUNNING_STATUSES = ['Queued', 'Started']
3
5
 
4
6
  attr_accessor :options, :account, :course, :batch, :course_section_ids, :enrollment_ids, :assignment_ids, :assignment_group_ids, :group_ids, :user_ids
5
7
 
@@ -7,7 +9,7 @@ class CoalescingPanda::Workers::CourseMiner
7
9
  @course = course
8
10
  @account = course.account
9
11
  @options = options
10
- @batch = CoalescingPanda::CanvasBatch.create(context: course, status: "Queued")
12
+ @batch = setup_batch
11
13
  @course_section_ids = []
12
14
  @enrollment_ids = []
13
15
  @assignment_ids = []
@@ -16,11 +18,21 @@ class CoalescingPanda::Workers::CourseMiner
16
18
  @user_ids = []
17
19
  end
18
20
 
21
+ def setup_batch
22
+ batch = account.canvas_batches.where(context: course).first
23
+ if batch.present? and RUNNING_STATUSES.include?(batch.status)
24
+ batch
25
+ else
26
+ account.canvas_batches.create(context: course, status: "Queued")
27
+ end
28
+ end
29
+
19
30
  def api_client
20
31
  @api_client ||= Bearcat::Client.new(prefix: account.settings[:base_url], token: account.settings[:account_admin_api_token])
21
32
  end
22
33
 
23
34
  def start
35
+ return unless batch.status == 'Queued'
24
36
  begin
25
37
  batch.update_attributes(status: "Started", percent_complete: 0)
26
38
  SUPPORTED_MODELS.each_with_index do |model_key, index|
@@ -0,0 +1,5 @@
1
+ class AddAccountToCanvasBatches < ActiveRecord::Migration
2
+ def change
3
+ add_column :coalescing_panda_canvas_batches, :coalescing_panda_lti_account_id, :integer, index: true
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module CoalescingPanda
2
- VERSION = '4.1.3'
2
+ VERSION = '4.1.4'
3
3
  end
Binary file
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20150506192717) do
14
+ ActiveRecord::Schema.define(version: 20150526144713) do
15
15
 
16
16
  create_table "coalescing_panda_assignment_groups", force: :cascade do |t|
17
17
  t.integer "coalescing_panda_course_id", null: false
@@ -59,13 +59,14 @@ ActiveRecord::Schema.define(version: 20150506192717) do
59
59
  end
60
60
 
61
61
  create_table "coalescing_panda_canvas_batches", force: :cascade do |t|
62
- t.float "percent_complete", default: 0.0
63
- t.string "status", limit: 255
62
+ t.float "percent_complete", default: 0.0
63
+ t.string "status", limit: 255
64
64
  t.text "message"
65
65
  t.datetime "created_at"
66
66
  t.datetime "updated_at"
67
67
  t.integer "context_id"
68
- t.string "context_type", limit: 255
68
+ t.string "context_type"
69
+ t.integer "coalescing_panda_lti_account_id"
69
70
  end
70
71
 
71
72
  create_table "coalescing_panda_courses", force: :cascade do |t|
@@ -99,30 +100,34 @@ ActiveRecord::Schema.define(version: 20150506192717) do
99
100
  t.datetime "updated_at"
100
101
  end
101
102
 
102
- add_index "coalescing_panda_enrollments", ["coalescing_panda_user_id", "coalescing_panda_section_id", "enrollment_type"], name: "index_enrollments_user_and_section", unique: true
103
+ add_index "coalescing_panda_enrollments", ["coalescing_panda_user_id", "coalescing_panda_section_id", "enrollment_type"], name: "index_enrollments_user_and_assignment", unique: true
103
104
  add_index "coalescing_panda_enrollments", ["sis_id"], name: "index_coalescing_panda_enrollments_on_sis_id"
104
105
 
105
106
  create_table "coalescing_panda_group_memberships", force: :cascade do |t|
106
107
  t.integer "coalescing_panda_group_id"
107
108
  t.integer "coalescing_panda_user_id"
108
- t.string "canvas_group_membership_id", limit: 255
109
- t.string "workflow_state", limit: 255
109
+ t.string "canvas_group_membership_id"
110
+ t.string "workflow_state"
110
111
  t.datetime "created_at"
111
112
  t.datetime "updated_at"
112
113
  end
113
114
 
115
+ add_index "coalescing_panda_group_memberships", ["coalescing_panda_group_id", "coalescing_panda_user_id"], name: "index_group_memberships_user_and_group", unique: true
116
+
114
117
  create_table "coalescing_panda_groups", force: :cascade do |t|
115
118
  t.integer "context_id"
116
- t.string "context_type", limit: 255
117
- t.string "description", limit: 255
118
- t.string "group_category_id", limit: 255
119
- t.string "canvas_group_id", limit: 255
120
- t.string "name", limit: 255
119
+ t.string "context_type"
120
+ t.string "description"
121
+ t.string "group_category_id"
122
+ t.string "canvas_group_id"
123
+ t.string "name"
121
124
  t.integer "members_count"
122
125
  t.datetime "created_at"
123
126
  t.datetime "updated_at"
124
127
  end
125
128
 
129
+ add_index "coalescing_panda_groups", ["context_id", "canvas_group_id"], name: "index_groups_context_and_group_id", unique: true
130
+
126
131
  create_table "coalescing_panda_lti_accounts", force: :cascade do |t|
127
132
  t.string "name", limit: 255
128
133
  t.string "key", limit: 255
Binary file
@@ -573,3 +573,437 @@ Migrating to AddTypeToEnrollments (20141125185516)
573
573
  SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141125185516"]]
574
574
   (0.8ms) commit transaction
575
575
  ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
576
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
577
+  (0.1ms) SELECT sql
578
+ FROM sqlite_master
579
+ WHERE name='index_coalescing_panda_assignments_on_sis_id' AND type='index'
580
+ UNION ALL
581
+ SELECT sql
582
+ FROM sqlite_temp_master
583
+ WHERE name='index_coalescing_panda_assignments_on_sis_id' AND type='index'
584
+
585
+  (0.1ms)  SELECT sql
586
+ FROM sqlite_master
587
+ WHERE name='index_coalescing_panda_assignments_on_canvas_assignment_id' AND type='index'
588
+ UNION ALL
589
+ SELECT sql
590
+ FROM sqlite_temp_master
591
+ WHERE name='index_coalescing_panda_assignments_on_canvas_assignment_id' AND type='index'
592
+ 
593
+  (0.1ms) SELECT sql
594
+ FROM sqlite_master
595
+ WHERE name='index_assignments_course' AND type='index'
596
+ UNION ALL
597
+ SELECT sql
598
+ FROM sqlite_temp_master
599
+ WHERE name='index_assignments_course' AND type='index'
600
+
601
+  (0.1ms)  SELECT sql
602
+ FROM sqlite_master
603
+ WHERE name='index_coalescing_panda_courses_on_sis_id' AND type='index'
604
+ UNION ALL
605
+ SELECT sql
606
+ FROM sqlite_temp_master
607
+ WHERE name='index_coalescing_panda_courses_on_sis_id' AND type='index'
608
+ 
609
+  (0.1ms) SELECT sql
610
+ FROM sqlite_master
611
+ WHERE name='index_coalescing_panda_courses_on_canvas_course_id' AND type='index'
612
+ UNION ALL
613
+ SELECT sql
614
+ FROM sqlite_temp_master
615
+ WHERE name='index_coalescing_panda_courses_on_canvas_course_id' AND type='index'
616
+
617
+  (0.1ms)  SELECT sql
618
+ FROM sqlite_master
619
+ WHERE name='index_courses_term' AND type='index'
620
+ UNION ALL
621
+ SELECT sql
622
+ FROM sqlite_temp_master
623
+ WHERE name='index_courses_term' AND type='index'
624
+ 
625
+  (0.1ms) SELECT sql
626
+ FROM sqlite_master
627
+ WHERE name='index_courses_account' AND type='index'
628
+ UNION ALL
629
+ SELECT sql
630
+ FROM sqlite_temp_master
631
+ WHERE name='index_courses_account' AND type='index'
632
+
633
+  (0.1ms)  SELECT sql
634
+ FROM sqlite_master
635
+ WHERE name='index_coalescing_panda_enrollments_on_sis_id' AND type='index'
636
+ UNION ALL
637
+ SELECT sql
638
+ FROM sqlite_temp_master
639
+ WHERE name='index_coalescing_panda_enrollments_on_sis_id' AND type='index'
640
+ 
641
+  (0.1ms) SELECT sql
642
+ FROM sqlite_master
643
+ WHERE name='index_coalescing_panda_enrollments_on_canvas_enrollment_id' AND type='index'
644
+ UNION ALL
645
+ SELECT sql
646
+ FROM sqlite_temp_master
647
+ WHERE name='index_coalescing_panda_enrollments_on_canvas_enrollment_id' AND type='index'
648
+
649
+  (0.1ms)  SELECT sql
650
+ FROM sqlite_master
651
+ WHERE name='index_enrollments_user_and_assignment' AND type='index'
652
+ UNION ALL
653
+ SELECT sql
654
+ FROM sqlite_temp_master
655
+ WHERE name='index_enrollments_user_and_assignment' AND type='index'
656
+ 
657
+  (0.1ms) SELECT sql
658
+ FROM sqlite_master
659
+ WHERE name='index_coalescing_panda_sections_on_sis_id' AND type='index'
660
+ UNION ALL
661
+ SELECT sql
662
+ FROM sqlite_temp_master
663
+ WHERE name='index_coalescing_panda_sections_on_sis_id' AND type='index'
664
+
665
+  (0.1ms)  SELECT sql
666
+ FROM sqlite_master
667
+ WHERE name='index_coalescing_panda_sections_on_canvas_section_id' AND type='index'
668
+ UNION ALL
669
+ SELECT sql
670
+ FROM sqlite_temp_master
671
+ WHERE name='index_coalescing_panda_sections_on_canvas_section_id' AND type='index'
672
+ 
673
+  (0.1ms) SELECT sql
674
+ FROM sqlite_master
675
+ WHERE name='index_coalescing_panda_sections_on_coalescing_panda_course_id' AND type='index'
676
+ UNION ALL
677
+ SELECT sql
678
+ FROM sqlite_temp_master
679
+ WHERE name='index_coalescing_panda_sections_on_coalescing_panda_course_id' AND type='index'
680
+
681
+  (0.1ms)  SELECT sql
682
+ FROM sqlite_master
683
+ WHERE name='index_coalescing_panda_submissions_on_canvas_submission_id' AND type='index'
684
+ UNION ALL
685
+ SELECT sql
686
+ FROM sqlite_temp_master
687
+ WHERE name='index_coalescing_panda_submissions_on_canvas_submission_id' AND type='index'
688
+ 
689
+  (0.1ms) SELECT sql
690
+ FROM sqlite_master
691
+ WHERE name='index_submissions_user_and_assignment' AND type='index'
692
+ UNION ALL
693
+ SELECT sql
694
+ FROM sqlite_temp_master
695
+ WHERE name='index_submissions_user_and_assignment' AND type='index'
696
+
697
+  (0.1ms)  SELECT sql
698
+ FROM sqlite_master
699
+ WHERE name='index_coalescing_panda_terms_on_sis_id' AND type='index'
700
+ UNION ALL
701
+ SELECT sql
702
+ FROM sqlite_temp_master
703
+ WHERE name='index_coalescing_panda_terms_on_sis_id' AND type='index'
704
+ 
705
+  (0.1ms) SELECT sql
706
+ FROM sqlite_master
707
+ WHERE name='index_coalescing_panda_terms_on_canvas_term_id' AND type='index'
708
+ UNION ALL
709
+ SELECT sql
710
+ FROM sqlite_temp_master
711
+ WHERE name='index_coalescing_panda_terms_on_canvas_term_id' AND type='index'
712
+
713
+  (0.1ms)  SELECT sql
714
+ FROM sqlite_master
715
+ WHERE name='index_coalescing_panda_users_on_sis_id' AND type='index'
716
+ UNION ALL
717
+ SELECT sql
718
+ FROM sqlite_temp_master
719
+ WHERE name='index_coalescing_panda_users_on_sis_id' AND type='index'
720
+ 
721
+  (0.1ms) SELECT sql
722
+ FROM sqlite_master
723
+ WHERE name='index_coalescing_panda_users_on_canvas_user_id' AND type='index'
724
+ UNION ALL
725
+ SELECT sql
726
+ FROM sqlite_temp_master
727
+ WHERE name='index_coalescing_panda_users_on_canvas_user_id' AND type='index'
728
+
729
+  (0.1ms)  SELECT sql
730
+ FROM sqlite_master
731
+ WHERE name='index_users_account' AND type='index'
732
+ UNION ALL
733
+ SELECT sql
734
+ FROM sqlite_temp_master
735
+ WHERE name='index_users_account' AND type='index'
736
+ 
737
+  (0.1ms) SELECT sql
738
+ FROM sqlite_master
739
+ WHERE name='delayed_jobs_priority' AND type='index'
740
+ UNION ALL
741
+ SELECT sql
742
+ FROM sqlite_temp_master
743
+ WHERE name='delayed_jobs_priority' AND type='index'
744
+
745
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
746
+ Migrating to AddSubmissionTypesToAssignments (20141208221740)
747
+  (0.1ms) begin transaction
748
+  (0.6ms) ALTER TABLE "coalescing_panda_assignments" ADD "submission_types" text
749
+ SQL (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141208221740"]]
750
+  (0.9ms) commit transaction
751
+ Migrating to AddGroupCategoryIdToAssignment (20150106175418)
752
+  (0.1ms) begin transaction
753
+  (0.4ms) ALTER TABLE "coalescing_panda_assignments" ADD "group_category_id" integer
754
+  (0.2ms) ALTER TABLE "coalescing_panda_assignments" ADD "grade_group_students_individually" boolean
755
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150106175418"]]
756
+  (0.7ms) commit transaction
757
+ Migrating to AddPublishedToAssignments (20150106180131)
758
+  (0.0ms) begin transaction
759
+  (0.4ms) ALTER TABLE "coalescing_panda_assignments" ADD "published" boolean
760
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150106180131"]]
761
+  (0.7ms) commit transaction
762
+ Migrating to CreateCoalescingPandaGroups (20150107205405)
763
+  (0.0ms) begin transaction
764
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/ctanner/code/coalescing_panda/db/migrate/20150107205405_create_coalescing_panda_groups.rb:11)
765
+  (0.4ms) CREATE TABLE "coalescing_panda_groups" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "context_id" integer, "context_type" varchar, "description" varchar, "group_category_id" varchar, "canvas_group_id" varchar, "name" varchar, "members_count" integer, "created_at" datetime, "updated_at" datetime)
766
+  (0.0ms) select sqlite_version(*)
767
+  (0.4ms) CREATE UNIQUE INDEX "index_groups_context_and_group_id" ON "coalescing_panda_groups" ("context_id", "canvas_group_id")
768
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150107205405"]]
769
+  (0.9ms) commit transaction
770
+ Migrating to CreateCoalescingPandaGroupMemberships (20150107205413)
771
+  (0.0ms) begin transaction
772
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/ctanner/code/coalescing_panda/db/migrate/20150107205413_create_coalescing_panda_group_memberships.rb:9)
773
+  (0.3ms) CREATE TABLE "coalescing_panda_group_memberships" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_group_id" integer, "coalescing_panda_user_id" integer, "canvas_group_membership_id" varchar, "workflow_state" varchar, "created_at" datetime, "updated_at" datetime)
774
+  (0.3ms) CREATE UNIQUE INDEX "index_group_memberships_user_and_group" ON "coalescing_panda_group_memberships" ("coalescing_panda_group_id", "coalescing_panda_user_id")
775
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150107205413"]]
776
+  (0.8ms) commit transaction
777
+ Migrating to AddContextToCanvasBatch (20150210180516)
778
+  (0.1ms) begin transaction
779
+  (0.4ms) ALTER TABLE "coalescing_panda_canvas_batches" ADD "context_id" integer
780
+  (0.1ms) ALTER TABLE "coalescing_panda_canvas_batches" ADD "context_type" varchar
781
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150210180516"]]
782
+  (0.7ms) commit transaction
783
+ Migrating to CreateCoalescingPandaAssignmentGroups (20150506183335)
784
+  (0.0ms) begin transaction
785
+ DEPRECATION WARNING: `#timestamp` was called without specifying an option for `null`. In Rails 5, this behavior will change to `null: false`. You should manually specify `null: true` to prevent the behavior of your existing migrations from changing. (called from block in change at /Users/ctanner/code/coalescing_panda/db/migrate/20150506183335_create_coalescing_panda_assignment_groups.rb:12)
786
+  (0.3ms) CREATE TABLE "coalescing_panda_assignment_groups" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_course_id" integer NOT NULL, "context_id" integer, "context_type" varchar, "canvas_assignment_group_id" varchar, "name" varchar, "position" integer, "group_weight" float, "workflow_state" varchar, "created_at" datetime, "updated_at" datetime)
787
+  (0.3ms) CREATE UNIQUE INDEX "index_assignment_group_course" ON "coalescing_panda_assignment_groups" ("coalescing_panda_course_id", "canvas_assignment_group_id")
788
+  (0.1ms) SELECT sql
789
+ FROM sqlite_master
790
+ WHERE name='index_assignment_group_course' AND type='index'
791
+ UNION ALL
792
+ SELECT sql
793
+ FROM sqlite_temp_master
794
+ WHERE name='index_assignment_group_course' AND type='index'
795
+
796
+  (0.2ms) CREATE UNIQUE INDEX "index_assignment_group_context" ON "coalescing_panda_assignment_groups" ("canvas_assignment_group_id", "context_id", "context_type")
797
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150506183335"]]
798
+  (1.1ms) commit transaction
799
+ Migrating to AddAssignmentGroupIdToAssignments (20150506192717)
800
+  (0.0ms) begin transaction
801
+  (0.3ms) ALTER TABLE "coalescing_panda_assignments" ADD "coalescing_panda_assignment_group_id" integer
802
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150506192717"]]
803
+  (0.7ms) commit transaction
804
+ Migrating to AddAccountToCanvasBatches (20150526144713)
805
+  (0.0ms) begin transaction
806
+  (0.3ms) ALTER TABLE "coalescing_panda_canvas_batches" ADD "coalescing_panda_lti_account_id" integer
807
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150526144713"]]
808
+  (0.6ms) commit transaction
809
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
810
+  (0.1ms)  SELECT sql
811
+ FROM sqlite_master
812
+ WHERE name='index_assignment_group_context' AND type='index'
813
+ UNION ALL
814
+ SELECT sql
815
+ FROM sqlite_temp_master
816
+ WHERE name='index_assignment_group_context' AND type='index'
817
+ 
818
+  (0.1ms) SELECT sql
819
+ FROM sqlite_master
820
+ WHERE name='index_assignment_group_course' AND type='index'
821
+ UNION ALL
822
+ SELECT sql
823
+ FROM sqlite_temp_master
824
+ WHERE name='index_assignment_group_course' AND type='index'
825
+
826
+  (0.1ms)  SELECT sql
827
+ FROM sqlite_master
828
+ WHERE name='index_coalescing_panda_assignments_on_sis_id' AND type='index'
829
+ UNION ALL
830
+ SELECT sql
831
+ FROM sqlite_temp_master
832
+ WHERE name='index_coalescing_panda_assignments_on_sis_id' AND type='index'
833
+ 
834
+  (0.1ms) SELECT sql
835
+ FROM sqlite_master
836
+ WHERE name='index_coalescing_panda_assignments_on_canvas_assignment_id' AND type='index'
837
+ UNION ALL
838
+ SELECT sql
839
+ FROM sqlite_temp_master
840
+ WHERE name='index_coalescing_panda_assignments_on_canvas_assignment_id' AND type='index'
841
+
842
+  (0.1ms)  SELECT sql
843
+ FROM sqlite_master
844
+ WHERE name='index_assignments_course' AND type='index'
845
+ UNION ALL
846
+ SELECT sql
847
+ FROM sqlite_temp_master
848
+ WHERE name='index_assignments_course' AND type='index'
849
+ 
850
+  (0.1ms) SELECT sql
851
+ FROM sqlite_master
852
+ WHERE name='index_coalescing_panda_courses_on_sis_id' AND type='index'
853
+ UNION ALL
854
+ SELECT sql
855
+ FROM sqlite_temp_master
856
+ WHERE name='index_coalescing_panda_courses_on_sis_id' AND type='index'
857
+
858
+  (0.1ms)  SELECT sql
859
+ FROM sqlite_master
860
+ WHERE name='index_coalescing_panda_courses_on_canvas_course_id' AND type='index'
861
+ UNION ALL
862
+ SELECT sql
863
+ FROM sqlite_temp_master
864
+ WHERE name='index_coalescing_panda_courses_on_canvas_course_id' AND type='index'
865
+ 
866
+  (0.1ms) SELECT sql
867
+ FROM sqlite_master
868
+ WHERE name='index_courses_term' AND type='index'
869
+ UNION ALL
870
+ SELECT sql
871
+ FROM sqlite_temp_master
872
+ WHERE name='index_courses_term' AND type='index'
873
+
874
+  (0.1ms)  SELECT sql
875
+ FROM sqlite_master
876
+ WHERE name='index_courses_account' AND type='index'
877
+ UNION ALL
878
+ SELECT sql
879
+ FROM sqlite_temp_master
880
+ WHERE name='index_courses_account' AND type='index'
881
+ 
882
+  (0.1ms) SELECT sql
883
+ FROM sqlite_master
884
+ WHERE name='index_coalescing_panda_enrollments_on_sis_id' AND type='index'
885
+ UNION ALL
886
+ SELECT sql
887
+ FROM sqlite_temp_master
888
+ WHERE name='index_coalescing_panda_enrollments_on_sis_id' AND type='index'
889
+
890
+  (0.1ms)  SELECT sql
891
+ FROM sqlite_master
892
+ WHERE name='index_coalescing_panda_enrollments_on_canvas_enrollment_id' AND type='index'
893
+ UNION ALL
894
+ SELECT sql
895
+ FROM sqlite_temp_master
896
+ WHERE name='index_coalescing_panda_enrollments_on_canvas_enrollment_id' AND type='index'
897
+ 
898
+  (0.1ms) SELECT sql
899
+ FROM sqlite_master
900
+ WHERE name='index_enrollments_user_and_assignment' AND type='index'
901
+ UNION ALL
902
+ SELECT sql
903
+ FROM sqlite_temp_master
904
+ WHERE name='index_enrollments_user_and_assignment' AND type='index'
905
+
906
+  (0.1ms)  SELECT sql
907
+ FROM sqlite_master
908
+ WHERE name='index_group_memberships_user_and_group' AND type='index'
909
+ UNION ALL
910
+ SELECT sql
911
+ FROM sqlite_temp_master
912
+ WHERE name='index_group_memberships_user_and_group' AND type='index'
913
+ 
914
+  (0.1ms) SELECT sql
915
+ FROM sqlite_master
916
+ WHERE name='index_groups_context_and_group_id' AND type='index'
917
+ UNION ALL
918
+ SELECT sql
919
+ FROM sqlite_temp_master
920
+ WHERE name='index_groups_context_and_group_id' AND type='index'
921
+
922
+  (0.1ms)  SELECT sql
923
+ FROM sqlite_master
924
+ WHERE name='index_coalescing_panda_sections_on_sis_id' AND type='index'
925
+ UNION ALL
926
+ SELECT sql
927
+ FROM sqlite_temp_master
928
+ WHERE name='index_coalescing_panda_sections_on_sis_id' AND type='index'
929
+ 
930
+  (0.1ms) SELECT sql
931
+ FROM sqlite_master
932
+ WHERE name='index_coalescing_panda_sections_on_canvas_section_id' AND type='index'
933
+ UNION ALL
934
+ SELECT sql
935
+ FROM sqlite_temp_master
936
+ WHERE name='index_coalescing_panda_sections_on_canvas_section_id' AND type='index'
937
+
938
+  (0.1ms)  SELECT sql
939
+ FROM sqlite_master
940
+ WHERE name='index_coalescing_panda_sections_on_coalescing_panda_course_id' AND type='index'
941
+ UNION ALL
942
+ SELECT sql
943
+ FROM sqlite_temp_master
944
+ WHERE name='index_coalescing_panda_sections_on_coalescing_panda_course_id' AND type='index'
945
+ 
946
+  (0.1ms) SELECT sql
947
+ FROM sqlite_master
948
+ WHERE name='index_coalescing_panda_submissions_on_canvas_submission_id' AND type='index'
949
+ UNION ALL
950
+ SELECT sql
951
+ FROM sqlite_temp_master
952
+ WHERE name='index_coalescing_panda_submissions_on_canvas_submission_id' AND type='index'
953
+
954
+  (0.1ms)  SELECT sql
955
+ FROM sqlite_master
956
+ WHERE name='index_submissions_user_and_assignment' AND type='index'
957
+ UNION ALL
958
+ SELECT sql
959
+ FROM sqlite_temp_master
960
+ WHERE name='index_submissions_user_and_assignment' AND type='index'
961
+ 
962
+  (0.1ms) SELECT sql
963
+ FROM sqlite_master
964
+ WHERE name='index_coalescing_panda_terms_on_sis_id' AND type='index'
965
+ UNION ALL
966
+ SELECT sql
967
+ FROM sqlite_temp_master
968
+ WHERE name='index_coalescing_panda_terms_on_sis_id' AND type='index'
969
+
970
+  (0.1ms)  SELECT sql
971
+ FROM sqlite_master
972
+ WHERE name='index_coalescing_panda_terms_on_canvas_term_id' AND type='index'
973
+ UNION ALL
974
+ SELECT sql
975
+ FROM sqlite_temp_master
976
+ WHERE name='index_coalescing_panda_terms_on_canvas_term_id' AND type='index'
977
+ 
978
+  (0.1ms) SELECT sql
979
+ FROM sqlite_master
980
+ WHERE name='index_coalescing_panda_users_on_sis_id' AND type='index'
981
+ UNION ALL
982
+ SELECT sql
983
+ FROM sqlite_temp_master
984
+ WHERE name='index_coalescing_panda_users_on_sis_id' AND type='index'
985
+
986
+  (0.1ms)  SELECT sql
987
+ FROM sqlite_master
988
+ WHERE name='index_coalescing_panda_users_on_canvas_user_id' AND type='index'
989
+ UNION ALL
990
+ SELECT sql
991
+ FROM sqlite_temp_master
992
+ WHERE name='index_coalescing_panda_users_on_canvas_user_id' AND type='index'
993
+ 
994
+  (0.1ms) SELECT sql
995
+ FROM sqlite_master
996
+ WHERE name='index_users_account' AND type='index'
997
+ UNION ALL
998
+ SELECT sql
999
+ FROM sqlite_temp_master
1000
+ WHERE name='index_users_account' AND type='index'
1001
+
1002
+  (0.1ms)  SELECT sql
1003
+ FROM sqlite_master
1004
+ WHERE name='delayed_jobs_priority' AND type='index'
1005
+ UNION ALL
1006
+ SELECT sql
1007
+ FROM sqlite_temp_master
1008
+ WHERE name='delayed_jobs_priority' AND type='index'
1009
+