coalescing_panda 4.1.21 → 4.1.22

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: b4020272b65148c411a3a23371f066513cae1430
4
- data.tar.gz: a4432c456704d531041a619666f2b080ed715fa0
3
+ metadata.gz: a821f7916f88f741a00dc2590e221f9086486a4a
4
+ data.tar.gz: 001c39a6df57d9c640da08379fc40393d61bedf7
5
5
  SHA512:
6
- metadata.gz: 089d0ae207a3bfcded6a7bff81592b8f9d457def8df923815af2ba0d7f0e5a0da808136b230ece5c51024dbef0809892294c2e1811a0e0a98c0e7fb688046fdf
7
- data.tar.gz: a0c726b90220c29c5bf89373c4bd39e8c3e9d23b405a781618bdc5bdfce7497c3c260036e1feac4d4020705960f19bd715b1c2101b927122e92ad95eac0f7cae
6
+ metadata.gz: dc30f86a363935bfacb382604eeadf56204decf79c2d82bb24bbd49875cfc316ac1464fa03045951a641f7a72b8257d0fe8d36e45b900736337c2ecda4674e09
7
+ data.tar.gz: ead855fd44866f0617787930b745d74fc3bf194d4ca93a709ed8caa377a08e096f02c2d0cfac853cb7262508044f966505489332affa15da5b02d45031a9631b
@@ -120,7 +120,7 @@ class CoalescingPanda::Workers::CourseMiner
120
120
  Rails.logger.error "Error syncing assignment group: #{values} Error: #{e}"
121
121
  end
122
122
  end
123
- course.assignment_groups.where.not(id: assignment_group_ids).destroy_all
123
+ delete_collection(course.assignment_groups.where.not(id: assignment_group_ids))
124
124
  end
125
125
 
126
126
  def sync_sections(collection)
@@ -136,7 +136,7 @@ class CoalescingPanda::Workers::CourseMiner
136
136
  Rails.logger.error "Error syncing section: #{values} Error: #{e}"
137
137
  end
138
138
  end
139
- course.sections.where.not(id: course_section_ids).destroy_all
139
+ delete_collection(course.sections.where.not(id: course_section_ids))
140
140
  end
141
141
 
142
142
  def sync_users(collection)
@@ -156,11 +156,11 @@ class CoalescingPanda::Workers::CourseMiner
156
156
  removed_users = course.users.where.not(id: user_ids)
157
157
  removed_users.each do |user|
158
158
  user.enrollments.each do |enrollment|
159
- course.submissions.where(coalescing_panda_user_id: enrollment.user.id).destroy_all
160
- enrollment.destroy
159
+ delete_collection(course.submissions.where(coalescing_panda_user_id: enrollment.user.id))
160
+ delete_object(enrollment)
161
161
  end
162
162
  end
163
- removed_users.destroy_all
163
+ delete_collection(removed_users)
164
164
  end
165
165
 
166
166
  def sync_enrollments(collection)
@@ -182,9 +182,9 @@ class CoalescingPanda::Workers::CourseMiner
182
182
  end
183
183
  removed_enrollments = course.enrollments.where.not(id: enrollment_ids)
184
184
  removed_enrollments.each do |enrollment|
185
- course.submissions.where(coalescing_panda_user_id: enrollment.user.id).destroy_all
185
+ delete_collection(course.submissions.where(coalescing_panda_user_id: enrollment.user.id))
186
186
  end
187
- removed_enrollments.destroy_all
187
+ delete_collection(removed_enrollments)
188
188
  end
189
189
 
190
190
  def sync_assignments(collection)
@@ -204,8 +204,8 @@ class CoalescingPanda::Workers::CourseMiner
204
204
  end
205
205
  end
206
206
  course.assignments.where.not(id: assignment_ids).each do |assignment|
207
- assignment.submissions.destroy_all
208
- assignment.destroy!
207
+ delete_collection(assignment.submissions)
208
+ delete_object(assignment)
209
209
  end
210
210
  end
211
211
 
@@ -257,7 +257,34 @@ class CoalescingPanda::Workers::CourseMiner
257
257
  Rails.logger.error "Error syncing group: #{values} Error: #{e}"
258
258
  end
259
259
  end
260
- course.groups.where.not(id: group_ids).destroy_all
260
+ delete_collection(course.groups.where.not(id: group_ids))
261
+ end
262
+
263
+ def delete_collection(query, hard_delete = false, field = 'workflow_state')
264
+ if @options.include?(:soft_delete) && !hard_delete
265
+ #failsafe in case something was missed
266
+ begin
267
+ query.update_all(field.to_sym => 'deleted')
268
+ rescue => e
269
+ Rails.logger.error("Error deleting with soft delete, attempting hard")
270
+ delete_collection(query, true)
271
+ end
272
+ else
273
+ query.destroy_all
274
+ end
275
+ end
276
+
277
+ def delete_object(object, hard_delete = false, field = 'workflow_state')
278
+ if @options.include?(:soft_delete) && !hard_delete
279
+ begin
280
+ object.update_attributes(field.to_sym => 'deleted')
281
+ rescue => e
282
+ Rails.logger.error("Error deleting with soft delete, attempting hard")
283
+ delete_object(object, true)
284
+ end
285
+ else
286
+ object.destroy!
287
+ end
261
288
  end
262
289
 
263
290
  def sync_group_memberships(collection)
@@ -1,3 +1,3 @@
1
1
  module CoalescingPanda
2
- VERSION = '4.1.21'
2
+ VERSION = '4.1.22'
3
3
  end
Binary file
@@ -30,11 +30,11 @@ ActiveRecord::Schema.define(version: 20150811140030) do
30
30
  add_index "coalescing_panda_assignment_groups", ["coalescing_panda_course_id", "canvas_assignment_group_id"], name: "index_assignment_group_course", unique: true
31
31
 
32
32
  create_table "coalescing_panda_assignments", force: :cascade do |t|
33
- t.integer "coalescing_panda_course_id", null: false
34
- t.string "name"
33
+ t.integer "coalescing_panda_course_id", null: false
34
+ t.string "name", limit: 255
35
35
  t.text "description"
36
- t.string "canvas_assignment_id", null: false
37
- t.string "workflow_state"
36
+ t.string "canvas_assignment_id", limit: 255, null: false
37
+ t.string "workflow_state", limit: 255
38
38
  t.float "points_possible"
39
39
  t.datetime "due_at"
40
40
  t.datetime "unlock_at"
@@ -52,35 +52,35 @@ ActiveRecord::Schema.define(version: 20150811140030) do
52
52
  add_index "coalescing_panda_assignments", ["coalescing_panda_course_id", "canvas_assignment_id"], name: "index_assignments_course", unique: true
53
53
 
54
54
  create_table "coalescing_panda_canvas_api_auths", force: :cascade do |t|
55
- t.string "user_id"
56
- t.string "api_domain"
57
- t.string "api_token"
55
+ t.string "user_id", limit: 255
56
+ t.string "api_domain", limit: 255
57
+ t.string "api_token", limit: 255
58
58
  t.datetime "created_at"
59
59
  t.datetime "updated_at"
60
60
  end
61
61
 
62
62
  create_table "coalescing_panda_canvas_batches", force: :cascade do |t|
63
- t.float "percent_complete", default: 0.0
64
- t.string "status"
63
+ t.float "percent_complete", default: 0.0
64
+ t.string "status", limit: 255
65
65
  t.text "message"
66
66
  t.datetime "created_at"
67
67
  t.datetime "updated_at"
68
68
  t.integer "context_id"
69
- t.string "context_type"
69
+ t.string "context_type", limit: 255
70
70
  t.integer "coalescing_panda_lti_account_id"
71
71
  t.text "options"
72
72
  end
73
73
 
74
74
  create_table "coalescing_panda_courses", force: :cascade do |t|
75
- t.integer "coalescing_panda_lti_account_id", null: false
75
+ t.integer "coalescing_panda_lti_account_id", null: false
76
76
  t.integer "coalescing_panda_term_id"
77
- t.string "name"
78
- t.string "canvas_course_id", null: false
79
- t.string "sis_id"
77
+ t.string "name", limit: 255
78
+ t.string "canvas_course_id", limit: 255, null: false
79
+ t.string "sis_id", limit: 255
80
80
  t.datetime "start_at"
81
81
  t.datetime "conclude_at"
82
- t.string "workflow_state"
83
- t.string "course_code"
82
+ t.string "workflow_state", limit: 255
83
+ t.string "course_code", limit: 255
84
84
  t.datetime "created_at"
85
85
  t.datetime "updated_at"
86
86
  end
@@ -90,12 +90,12 @@ ActiveRecord::Schema.define(version: 20150811140030) do
90
90
  add_index "coalescing_panda_courses", ["sis_id"], name: "index_coalescing_panda_courses_on_sis_id"
91
91
 
92
92
  create_table "coalescing_panda_enrollments", force: :cascade do |t|
93
- t.integer "coalescing_panda_user_id", null: false
94
- t.integer "coalescing_panda_section_id", null: false
95
- t.string "workflow_state"
96
- t.string "sis_id"
97
- t.string "canvas_enrollment_id", null: false
98
- t.string "enrollment_type"
93
+ t.integer "coalescing_panda_user_id", null: false
94
+ t.integer "coalescing_panda_section_id", null: false
95
+ t.string "workflow_state", limit: 255
96
+ t.string "sis_id", limit: 255
97
+ t.string "canvas_enrollment_id", limit: 255, null: false
98
+ t.string "enrollment_type", limit: 255
99
99
  t.datetime "start_at"
100
100
  t.datetime "end_at"
101
101
  t.datetime "created_at"
@@ -119,8 +119,8 @@ ActiveRecord::Schema.define(version: 20150811140030) do
119
119
  create_table "coalescing_panda_group_memberships", force: :cascade do |t|
120
120
  t.integer "coalescing_panda_group_id"
121
121
  t.integer "coalescing_panda_user_id"
122
- t.string "canvas_group_membership_id"
123
- t.string "workflow_state"
122
+ t.string "canvas_group_membership_id", limit: 255
123
+ t.string "workflow_state", limit: 255
124
124
  t.datetime "created_at"
125
125
  t.datetime "updated_at"
126
126
  t.boolean "moderator"
@@ -130,11 +130,11 @@ ActiveRecord::Schema.define(version: 20150811140030) do
130
130
 
131
131
  create_table "coalescing_panda_groups", force: :cascade do |t|
132
132
  t.integer "context_id"
133
- t.string "context_type"
134
- t.string "description"
135
- t.string "group_category_id"
136
- t.string "canvas_group_id"
137
- t.string "name"
133
+ t.string "context_type", limit: 255
134
+ t.string "description", limit: 255
135
+ t.string "group_category_id", limit: 255
136
+ t.string "canvas_group_id", limit: 255
137
+ t.string "name", limit: 255
138
138
  t.integer "members_count"
139
139
  t.datetime "created_at"
140
140
  t.datetime "updated_at"
@@ -145,12 +145,12 @@ ActiveRecord::Schema.define(version: 20150811140030) do
145
145
  add_index "coalescing_panda_groups", ["context_id", "canvas_group_id"], name: "index_groups_context_and_group_id", unique: true
146
146
 
147
147
  create_table "coalescing_panda_lti_accounts", force: :cascade do |t|
148
- t.string "name"
149
- t.string "key"
150
- t.string "secret"
151
- t.string "oauth2_client_id"
152
- t.string "oauth2_client_key"
153
- t.string "canvas_account_id"
148
+ t.string "name", limit: 255
149
+ t.string "key", limit: 255
150
+ t.string "secret", limit: 255
151
+ t.string "oauth2_client_id", limit: 255
152
+ t.string "oauth2_client_key", limit: 255
153
+ t.string "canvas_account_id", limit: 255
154
154
  t.text "settings"
155
155
  t.datetime "created_at"
156
156
  t.datetime "updated_at"
@@ -158,16 +158,16 @@ ActiveRecord::Schema.define(version: 20150811140030) do
158
158
 
159
159
  create_table "coalescing_panda_lti_nonces", force: :cascade do |t|
160
160
  t.integer "coalescing_panda_lti_account_id"
161
- t.string "nonce"
161
+ t.string "nonce", limit: 255
162
162
  t.datetime "timestamp"
163
163
  end
164
164
 
165
165
  create_table "coalescing_panda_sections", force: :cascade do |t|
166
- t.integer "coalescing_panda_course_id", null: false
167
- t.string "name"
168
- t.string "canvas_section_id", null: false
169
- t.string "sis_id"
170
- t.string "workflow_state"
166
+ t.integer "coalescing_panda_course_id", null: false
167
+ t.string "name", limit: 255
168
+ t.string "canvas_section_id", limit: 255, null: false
169
+ t.string "sis_id", limit: 255
170
+ t.string "workflow_state", limit: 255
171
171
  t.datetime "start_at"
172
172
  t.datetime "end_at"
173
173
  t.datetime "created_at"
@@ -178,21 +178,21 @@ ActiveRecord::Schema.define(version: 20150811140030) do
178
178
  add_index "coalescing_panda_sections", ["sis_id"], name: "index_coalescing_panda_sections_on_sis_id"
179
179
 
180
180
  create_table "coalescing_panda_sessions", force: :cascade do |t|
181
- t.string "token"
181
+ t.string "token", limit: 255
182
182
  t.text "data"
183
183
  t.datetime "created_at"
184
184
  t.datetime "updated_at"
185
185
  end
186
186
 
187
187
  create_table "coalescing_panda_submissions", force: :cascade do |t|
188
- t.integer "coalescing_panda_user_id", null: false
189
- t.integer "coalescing_panda_assignment_id", null: false
190
- t.string "url"
191
- t.string "grade"
192
- t.string "score"
188
+ t.integer "coalescing_panda_user_id", null: false
189
+ t.integer "coalescing_panda_assignment_id", null: false
190
+ t.string "url", limit: 255
191
+ t.string "grade", limit: 255
192
+ t.string "score", limit: 255
193
193
  t.datetime "submitted_at"
194
- t.string "workflow_state"
195
- t.string "canvas_submission_id", null: false
194
+ t.string "workflow_state", limit: 255
195
+ t.string "canvas_submission_id", limit: 255, null: false
196
196
  t.datetime "created_at"
197
197
  t.datetime "updated_at"
198
198
  end
@@ -201,14 +201,14 @@ ActiveRecord::Schema.define(version: 20150811140030) do
201
201
  add_index "coalescing_panda_submissions", ["coalescing_panda_user_id", "coalescing_panda_assignment_id", "canvas_submission_id"], name: "index_submissions_user_and_assignment", unique: true
202
202
 
203
203
  create_table "coalescing_panda_terms", force: :cascade do |t|
204
- t.integer "coalescing_panda_lti_account_id", null: false
205
- t.string "name"
206
- t.string "code"
207
- t.string "sis_id"
208
- t.string "canvas_term_id", null: false
204
+ t.integer "coalescing_panda_lti_account_id", null: false
205
+ t.string "name", limit: 255
206
+ t.string "code", limit: 255
207
+ t.string "sis_id", limit: 255
208
+ t.string "canvas_term_id", limit: 255, null: false
209
209
  t.datetime "start_at"
210
210
  t.datetime "end_at"
211
- t.string "workflow_state"
211
+ t.string "workflow_state", limit: 255
212
212
  t.datetime "created_at"
213
213
  t.datetime "updated_at"
214
214
  end
@@ -217,13 +217,13 @@ ActiveRecord::Schema.define(version: 20150811140030) do
217
217
  add_index "coalescing_panda_terms", ["sis_id"], name: "index_coalescing_panda_terms_on_sis_id"
218
218
 
219
219
  create_table "coalescing_panda_users", force: :cascade do |t|
220
- t.integer "coalescing_panda_lti_account_id", null: false
221
- t.string "name"
222
- t.string "email"
223
- t.string "roles"
224
- t.string "workflow_state"
225
- t.string "sis_id"
226
- t.string "canvas_user_id", null: false
220
+ t.integer "coalescing_panda_lti_account_id", null: false
221
+ t.string "name", limit: 255
222
+ t.string "email", limit: 255
223
+ t.string "roles", limit: 255
224
+ t.string "workflow_state", limit: 255
225
+ t.string "sis_id", limit: 255
226
+ t.string "canvas_user_id", limit: 255, null: false
227
227
  t.datetime "created_at"
228
228
  t.datetime "updated_at"
229
229
  t.string "login_id"
@@ -233,15 +233,15 @@ ActiveRecord::Schema.define(version: 20150811140030) do
233
233
  add_index "coalescing_panda_users", ["sis_id"], name: "index_coalescing_panda_users_on_sis_id"
234
234
 
235
235
  create_table "delayed_jobs", force: :cascade do |t|
236
- t.integer "priority", default: 0, null: false
237
- t.integer "attempts", default: 0, null: false
238
- t.text "handler", null: false
236
+ t.integer "priority", default: 0, null: false
237
+ t.integer "attempts", default: 0, null: false
238
+ t.text "handler", null: false
239
239
  t.text "last_error"
240
240
  t.datetime "run_at"
241
241
  t.datetime "locked_at"
242
242
  t.datetime "failed_at"
243
- t.string "locked_by"
244
- t.string "queue"
243
+ t.string "locked_by", limit: 255
244
+ t.string "queue", limit: 255
245
245
  t.datetime "created_at"
246
246
  t.datetime "updated_at"
247
247
  end
Binary file
@@ -0,0 +1,628 @@
1
+  (1.2ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL) 
2
+  (0.5ms) select sqlite_version(*)
3
+  (1.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
4
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
5
+ Migrating to CreateCoalescingPandaCanvasApiAuths (20131114150001)
6
+  (0.1ms) begin transaction
7
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20131114150001_create_coalescing_panda_canvas_api_auths.rb:7)
8
+  (1.0ms) CREATE TABLE "coalescing_panda_canvas_api_auths" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "user_id" varchar, "api_domain" varchar, "api_token" varchar, "created_at" datetime, "updated_at" datetime)
9
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20131114150001"]]
10
+  (0.8ms) commit transaction
11
+ Migrating to CreateCoalescingPandaLtiAccounts (20131118211442)
12
+  (0.1ms) begin transaction
13
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20131118211442_create_coalescing_panda_lti_accounts.rb:12)
14
+  (0.3ms) CREATE TABLE "coalescing_panda_lti_accounts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "key" varchar, "secret" varchar, "oauth2_client_id" varchar, "oauth2_client_key" varchar, "canvas_account_id" varchar, "settings" text, "created_at" datetime, "updated_at" datetime)
15
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20131118211442"]]
16
+  (0.6ms) commit transaction
17
+ Migrating to CreateCoalescingPandaLtiNonces (20131119165343)
18
+  (0.0ms) begin transaction
19
+  (0.2ms) CREATE TABLE "coalescing_panda_lti_nonces" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_lti_account_id" integer, "nonce" varchar, "timestamp" datetime)
20
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20131119165343"]]
21
+  (0.7ms) commit transaction
22
+ Migrating to CreateCoalescingPandaSessions (20140904223159)
23
+  (0.1ms) begin transaction
24
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20140904223159_create_coalescing_panda_sessions.rb:7)
25
+  (0.3ms) CREATE TABLE "coalescing_panda_sessions" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "token" varchar, "data" text, "created_at" datetime, "updated_at" datetime)
26
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140904223159"]]
27
+  (0.8ms) commit transaction
28
+ Migrating to CreateCoalescingPandaTerms (20141119225319)
29
+  (0.1ms) begin transaction
30
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20141119225319_create_coalescing_panda_terms.rb:13)
31
+  (0.3ms) CREATE TABLE "coalescing_panda_terms" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_lti_account_id" integer NOT NULL, "name" varchar, "code" varchar, "sis_id" varchar, "canvas_term_id" varchar NOT NULL, "start_at" datetime, "end_at" datetime, "workflow_state" varchar, "created_at" datetime, "updated_at" datetime)
32
+  (1.3ms) CREATE UNIQUE INDEX "index_terms_account" ON "coalescing_panda_terms" ("canvas_term_id", "coalescing_panda_lti_account_id")
33
+  (0.4ms) SELECT sql
34
+ FROM sqlite_master
35
+ WHERE name='index_terms_account' AND type='index'
36
+ UNION ALL
37
+ SELECT sql
38
+ FROM sqlite_temp_master
39
+ WHERE name='index_terms_account' AND type='index'
40
+
41
+  (0.1ms) CREATE INDEX "index_coalescing_panda_terms_on_sis_id" ON "coalescing_panda_terms" ("sis_id")
42
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141119225319"]]
43
+  (0.8ms) commit transaction
44
+ Migrating to CreateCoalescingPandaCourses (20141119225721)
45
+  (0.0ms) begin transaction
46
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20141119225721_create_coalescing_panda_courses.rb:14)
47
+  (0.2ms) CREATE TABLE "coalescing_panda_courses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_lti_account_id" integer NOT NULL, "coalescing_panda_term_id" integer, "name" varchar, "canvas_course_id" varchar NOT NULL, "sis_id" varchar, "start_at" datetime, "conclude_at" datetime, "workflow_state" varchar, "course_code" varchar, "created_at" datetime, "updated_at" datetime) 
48
+  (0.6ms) CREATE UNIQUE INDEX "index_courses_account" ON "coalescing_panda_courses" ("coalescing_panda_lti_account_id", "canvas_course_id")
49
+  (0.0ms)  SELECT sql
50
+ FROM sqlite_master
51
+ WHERE name='index_courses_account' AND type='index'
52
+ UNION ALL
53
+ SELECT sql
54
+ FROM sqlite_temp_master
55
+ WHERE name='index_courses_account' AND type='index'
56
+ 
57
+  (0.1ms) CREATE UNIQUE INDEX "index_courses_term" ON "coalescing_panda_courses" ("coalescing_panda_term_id", "canvas_course_id")
58
+  (0.0ms)  SELECT sql
59
+ FROM sqlite_master
60
+ WHERE name='index_courses_term' AND type='index'
61
+ UNION ALL
62
+ SELECT sql
63
+ FROM sqlite_temp_master
64
+ WHERE name='index_courses_term' AND type='index'
65
+ 
66
+  (0.0ms) SELECT sql
67
+ FROM sqlite_master
68
+ WHERE name='index_courses_account' AND type='index'
69
+ UNION ALL
70
+ SELECT sql
71
+ FROM sqlite_temp_master
72
+ WHERE name='index_courses_account' AND type='index'
73
+
74
+  (0.1ms) CREATE INDEX "index_coalescing_panda_courses_on_sis_id" ON "coalescing_panda_courses" ("sis_id")
75
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141119225721"]]
76
+  (0.8ms) commit transaction
77
+ Migrating to CreateCoalescingPandaSections (20141120151432)
78
+  (0.0ms) begin transaction
79
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20141120151432_create_coalescing_panda_sections.rb:12)
80
+  (0.3ms) CREATE TABLE "coalescing_panda_sections" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_course_id" integer NOT NULL, "name" varchar, "canvas_section_id" varchar NOT NULL, "sis_id" varchar, "workflow_state" varchar, "start_at" datetime, "end_at" datetime, "created_at" datetime, "updated_at" datetime) 
81
+  (0.5ms) CREATE UNIQUE INDEX "index_sections_course" ON "coalescing_panda_sections" ("coalescing_panda_course_id", "canvas_section_id")
82
+  (0.1ms)  SELECT sql
83
+ FROM sqlite_master
84
+ WHERE name='index_sections_course' AND type='index'
85
+ UNION ALL
86
+ SELECT sql
87
+ FROM sqlite_temp_master
88
+ WHERE name='index_sections_course' AND type='index'
89
+ 
90
+  (0.1ms) CREATE INDEX "index_coalescing_panda_sections_on_sis_id" ON "coalescing_panda_sections" ("sis_id")
91
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141120151432"]]
92
+  (0.9ms) commit transaction
93
+ Migrating to CreateCoalescingPandaAssignments (20141120151940)
94
+  (0.0ms) begin transaction
95
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20141120151940_create_coalescing_panda_assignments.rb:14)
96
+  (0.3ms) CREATE TABLE "coalescing_panda_assignments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_course_id" integer NOT NULL, "name" varchar, "description" text, "canvas_assignment_id" varchar NOT NULL, "workflow_state" varchar, "points_possible" float, "due_at" datetime, "unlock_at" datetime, "lock_at" datetime, "created_at" datetime, "updated_at" datetime)
97
+  (0.6ms) CREATE UNIQUE INDEX "index_assignments_course" ON "coalescing_panda_assignments" ("coalescing_panda_course_id", "canvas_assignment_id")
98
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141120151940"]]
99
+  (0.9ms) commit transaction
100
+ Migrating to CreateCoalescingPandaUsers (20141120152458)
101
+  (0.0ms) begin transaction
102
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20141120152458_create_coalescing_panda_users.rb:12)
103
+  (0.2ms) CREATE TABLE "coalescing_panda_users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_lti_account_id" integer NOT NULL, "name" varchar, "email" varchar, "roles" varchar, "workflow_state" varchar, "sis_id" varchar, "canvas_user_id" varchar NOT NULL, "created_at" datetime, "updated_at" datetime) 
104
+  (0.4ms) CREATE UNIQUE INDEX "index_users_account" ON "coalescing_panda_users" ("coalescing_panda_lti_account_id", "canvas_user_id")
105
+  (0.0ms)  SELECT sql
106
+ FROM sqlite_master
107
+ WHERE name='index_users_account' AND type='index'
108
+ UNION ALL
109
+ SELECT sql
110
+ FROM sqlite_temp_master
111
+ WHERE name='index_users_account' AND type='index'
112
+ 
113
+  (0.1ms) CREATE INDEX "index_coalescing_panda_users_on_sis_id" ON "coalescing_panda_users" ("sis_id")
114
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141120152458"]]
115
+  (1.0ms) commit transaction
116
+ Migrating to CreateCoalescingPandaSubmissions (20141120152546)
117
+  (0.0ms) begin transaction
118
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20141120152546_create_coalescing_panda_submissions.rb:13)
119
+  (0.3ms) CREATE TABLE "coalescing_panda_submissions" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_user_id" integer NOT NULL, "coalescing_panda_assignment_id" integer NOT NULL, "url" varchar, "grade" varchar, "score" varchar, "submitted_at" datetime, "workflow_state" varchar, "canvas_submission_id" varchar NOT NULL, "created_at" datetime, "updated_at" datetime)
120
+  (0.5ms) CREATE UNIQUE INDEX "index_submissions_user_and_assignment" ON "coalescing_panda_submissions" ("coalescing_panda_user_id", "coalescing_panda_assignment_id", "canvas_submission_id")
121
+  (0.0ms) SELECT sql
122
+ FROM sqlite_master
123
+ WHERE name='index_submissions_user_and_assignment' AND type='index'
124
+ UNION ALL
125
+ SELECT sql
126
+ FROM sqlite_temp_master
127
+ WHERE name='index_submissions_user_and_assignment' AND type='index'
128
+
129
+  (0.1ms) CREATE INDEX "index_coalescing_panda_submissions_on_canvas_submission_id" ON "coalescing_panda_submissions" ("canvas_submission_id")
130
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141120152546"]]
131
+  (0.9ms) commit transaction
132
+ Migrating to CreateCoalescingPandaEnrollments (20141120153135)
133
+  (0.0ms) begin transaction
134
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20141120153135_create_coalescing_panda_enrollments.rb:13)
135
+  (0.2ms) CREATE TABLE "coalescing_panda_enrollments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_user_id" integer NOT NULL, "coalescing_panda_section_id" integer NOT NULL, "workflow_state" varchar, "sis_id" varchar, "canvas_enrollment_id" varchar NOT NULL, "enrollment_type" varchar, "start_at" datetime, "end_at" datetime, "created_at" datetime, "updated_at" datetime) 
136
+  (0.4ms) CREATE UNIQUE INDEX "index_enrollments_user_and_section" ON "coalescing_panda_enrollments" ("coalescing_panda_user_id", "coalescing_panda_section_id", "enrollment_type")
137
+  (0.0ms)  SELECT sql
138
+ FROM sqlite_master
139
+ WHERE name='index_enrollments_user_and_section' AND type='index'
140
+ UNION ALL
141
+ SELECT sql
142
+ FROM sqlite_temp_master
143
+ WHERE name='index_enrollments_user_and_section' AND type='index'
144
+ 
145
+  (0.1ms) CREATE INDEX "index_coalescing_panda_enrollments_on_sis_id" ON "coalescing_panda_enrollments" ("sis_id")
146
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141120153135"]]
147
+  (0.8ms) commit transaction
148
+ Migrating to CreateCoalescingPandaCanvasBatches (20141121174846)
149
+  (0.0ms) begin transaction
150
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20141121174846_create_coalescing_panda_canvas_batches.rb:8)
151
+  (0.2ms) CREATE TABLE "coalescing_panda_canvas_batches" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "percent_complete" float DEFAULT 0.0, "status" varchar, "message" text, "created_at" datetime, "updated_at" datetime)
152
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141121174846"]]
153
+  (0.7ms) commit transaction
154
+ Migrating to CreateDelayedJobs (20141124160857)
155
+  (0.0ms) begin transaction
156
+ 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 up at /Users/brandonbr/work/src/coalescing_panda/db/migrate/20141124160857_create_delayed_jobs.rb:13)
157
+  (0.3ms) CREATE TABLE "delayed_jobs" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "priority" integer DEFAULT 0 NOT NULL, "attempts" integer DEFAULT 0 NOT NULL, "handler" text NOT NULL, "last_error" text, "run_at" datetime, "locked_at" datetime, "failed_at" datetime, "locked_by" varchar, "queue" varchar, "created_at" datetime, "updated_at" datetime)
158
+  (0.1ms) CREATE INDEX "delayed_jobs_priority" ON "delayed_jobs" ("priority", "run_at")
159
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141124160857"]]
160
+  (0.6ms) commit transaction
161
+ Migrating to AddSubmissionTypesToAssignments (20141208221740)
162
+  (0.0ms) begin transaction
163
+  (1.0ms) ALTER TABLE "coalescing_panda_assignments" ADD "submission_types" text
164
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20141208221740"]]
165
+  (0.7ms) commit transaction
166
+ Migrating to AddGroupCategoryIdToAssignment (20150106175418)
167
+  (0.0ms) begin transaction
168
+  (0.4ms) ALTER TABLE "coalescing_panda_assignments" ADD "group_category_id" integer
169
+  (0.1ms) ALTER TABLE "coalescing_panda_assignments" ADD "grade_group_students_individually" boolean
170
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150106175418"]]
171
+  (0.7ms) commit transaction
172
+ Migrating to AddPublishedToAssignments (20150106180131)
173
+  (0.0ms) begin transaction
174
+  (0.3ms) ALTER TABLE "coalescing_panda_assignments" ADD "published" boolean
175
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150106180131"]]
176
+  (0.6ms) commit transaction
177
+ Migrating to CreateCoalescingPandaGroups (20150107205405)
178
+  (0.1ms) begin transaction
179
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20150107205405_create_coalescing_panda_groups.rb:11)
180
+  (0.3ms) 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)
181
+  (1.4ms) CREATE UNIQUE INDEX "index_groups_context_and_group_id" ON "coalescing_panda_groups" ("context_id", "canvas_group_id")
182
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150107205405"]]
183
+  (1.1ms) commit transaction
184
+ Migrating to CreateCoalescingPandaGroupMemberships (20150107205413)
185
+  (0.0ms) begin transaction
186
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20150107205413_create_coalescing_panda_group_memberships.rb:9)
187
+  (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) 
188
+  (0.6ms) CREATE UNIQUE INDEX "index_group_memberships_user_and_group" ON "coalescing_panda_group_memberships" ("coalescing_panda_group_id", "coalescing_panda_user_id")
189
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150107205413"]]
190
+  (0.9ms) commit transaction
191
+ Migrating to AddContextToCanvasBatch (20150210180516)
192
+  (0.1ms) begin transaction
193
+  (0.3ms) ALTER TABLE "coalescing_panda_canvas_batches" ADD "context_id" integer
194
+  (0.1ms) ALTER TABLE "coalescing_panda_canvas_batches" ADD "context_type" varchar
195
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150210180516"]]
196
+  (0.6ms) commit transaction
197
+ Migrating to CreateCoalescingPandaAssignmentGroups (20150506183335)
198
+  (0.0ms) begin transaction
199
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20150506183335_create_coalescing_panda_assignment_groups.rb:12)
200
+  (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) 
201
+  (0.5ms) CREATE UNIQUE INDEX "index_assignment_group_course" ON "coalescing_panda_assignment_groups" ("coalescing_panda_course_id", "canvas_assignment_group_id")
202
+  (0.1ms)  SELECT sql
203
+ FROM sqlite_master
204
+ WHERE name='index_assignment_group_course' AND type='index'
205
+ UNION ALL
206
+ SELECT sql
207
+ FROM sqlite_temp_master
208
+ WHERE name='index_assignment_group_course' AND type='index'
209
+ 
210
+  (0.1ms) CREATE UNIQUE INDEX "index_assignment_group_context" ON "coalescing_panda_assignment_groups" ("canvas_assignment_group_id", "context_id", "context_type")
211
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150506183335"]]
212
+  (0.8ms) commit transaction
213
+ Migrating to AddAssignmentGroupIdToAssignments (20150506192717)
214
+  (0.0ms) begin transaction
215
+  (0.3ms) ALTER TABLE "coalescing_panda_assignments" ADD "coalescing_panda_assignment_group_id" integer
216
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150506192717"]]
217
+  (0.7ms) commit transaction
218
+ Migrating to AddAccountToCanvasBatches (20150526144713)
219
+  (0.0ms) begin transaction
220
+  (0.3ms) ALTER TABLE "coalescing_panda_canvas_batches" ADD "coalescing_panda_lti_account_id" integer
221
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150526144713"]]
222
+  (0.7ms) commit transaction
223
+ Migrating to AddOptionToCanvasBatches (20150602205257)
224
+  (0.1ms) begin transaction
225
+  (0.3ms) ALTER TABLE "coalescing_panda_canvas_batches" ADD "options" text
226
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150602205257"]]
227
+  (0.5ms) commit transaction
228
+ Migrating to AddGroupModeratorToGroupMemberships (20150708192717)
229
+  (0.0ms) begin transaction
230
+  (0.3ms) ALTER TABLE "coalescing_panda_group_memberships" ADD "moderator" boolean
231
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150708192717"]]
232
+  (0.5ms) commit transaction
233
+ Migrating to AddLeaderIdToGroups (20150709192717)
234
+  (0.0ms) begin transaction
235
+  (0.3ms) ALTER TABLE "coalescing_panda_groups" ADD "leader_id" integer
236
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150709192717"]]
237
+  (0.5ms) commit transaction
238
+ Migrating to CreateCoalescingPandaGroupCategories (20150714205405)
239
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
240
+ Migrating to CreateCoalescingPandaGroupCategories (20150714205405)
241
+  (0.1ms) begin transaction
242
+ 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/brandonbr/work/src/coalescing_panda/db/migrate/20150714205405_create_coalescing_panda_group_categories.rb:9)
243
+  (0.5ms) CREATE TABLE "coalescing_panda_group_category" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "context_id" integer, "context_type" varchar, "canvas_group_category_id" integer, "name" varchar, "created_at" datetime, "updated_at" datetime) 
244
+  (0.0ms) select sqlite_version(*)
245
+  (0.1ms) CREATE INDEX "index_group_categories_context_and_context_type" ON "coalescing_panda_group_category" ("context_id", "context_type")
246
+  (0.2ms) ALTER TABLE "coalescing_panda_assignments" ADD "coalescing_panda_group_category_id" integer
247
+  (0.1ms) ALTER TABLE "coalescing_panda_groups" ADD "coalescing_panda_group_category_id" integer
248
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20150714205405"]]
249
+  (0.9ms) commit transaction
250
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
251
+  (0.1ms)  SELECT sql
252
+ FROM sqlite_master
253
+ WHERE name='index_assignment_group_context' AND type='index'
254
+ UNION ALL
255
+ SELECT sql
256
+ FROM sqlite_temp_master
257
+ WHERE name='index_assignment_group_context' AND type='index'
258
+ 
259
+  (0.1ms) SELECT sql
260
+ FROM sqlite_master
261
+ WHERE name='index_assignment_group_course' AND type='index'
262
+ UNION ALL
263
+ SELECT sql
264
+ FROM sqlite_temp_master
265
+ WHERE name='index_assignment_group_course' AND type='index'
266
+
267
+  (0.1ms)  SELECT sql
268
+ FROM sqlite_master
269
+ WHERE name='index_assignments_course' AND type='index'
270
+ UNION ALL
271
+ SELECT sql
272
+ FROM sqlite_temp_master
273
+ WHERE name='index_assignments_course' AND type='index'
274
+ 
275
+  (0.1ms) SELECT sql
276
+ FROM sqlite_master
277
+ WHERE name='index_coalescing_panda_courses_on_sis_id' AND type='index'
278
+ UNION ALL
279
+ SELECT sql
280
+ FROM sqlite_temp_master
281
+ WHERE name='index_coalescing_panda_courses_on_sis_id' AND type='index'
282
+
283
+  (0.1ms)  SELECT sql
284
+ FROM sqlite_master
285
+ WHERE name='index_courses_term' AND type='index'
286
+ UNION ALL
287
+ SELECT sql
288
+ FROM sqlite_temp_master
289
+ WHERE name='index_courses_term' AND type='index'
290
+ 
291
+  (0.1ms) SELECT sql
292
+ FROM sqlite_master
293
+ WHERE name='index_courses_account' AND type='index'
294
+ UNION ALL
295
+ SELECT sql
296
+ FROM sqlite_temp_master
297
+ WHERE name='index_courses_account' AND type='index'
298
+
299
+  (0.1ms)  SELECT sql
300
+ FROM sqlite_master
301
+ WHERE name='index_coalescing_panda_enrollments_on_sis_id' AND type='index'
302
+ UNION ALL
303
+ SELECT sql
304
+ FROM sqlite_temp_master
305
+ WHERE name='index_coalescing_panda_enrollments_on_sis_id' AND type='index'
306
+ 
307
+  (0.1ms) SELECT sql
308
+ FROM sqlite_master
309
+ WHERE name='index_enrollments_user_and_section' AND type='index'
310
+ UNION ALL
311
+ SELECT sql
312
+ FROM sqlite_temp_master
313
+ WHERE name='index_enrollments_user_and_section' AND type='index'
314
+
315
+  (0.1ms)  SELECT sql
316
+ FROM sqlite_master
317
+ WHERE name='index_group_categories_context_and_context_type' AND type='index'
318
+ UNION ALL
319
+ SELECT sql
320
+ FROM sqlite_temp_master
321
+ WHERE name='index_group_categories_context_and_context_type' AND type='index'
322
+ 
323
+  (0.1ms) SELECT sql
324
+ FROM sqlite_master
325
+ WHERE name='index_group_memberships_user_and_group' AND type='index'
326
+ UNION ALL
327
+ SELECT sql
328
+ FROM sqlite_temp_master
329
+ WHERE name='index_group_memberships_user_and_group' AND type='index'
330
+
331
+  (0.1ms)  SELECT sql
332
+ FROM sqlite_master
333
+ WHERE name='index_groups_context_and_group_id' AND type='index'
334
+ UNION ALL
335
+ SELECT sql
336
+ FROM sqlite_temp_master
337
+ WHERE name='index_groups_context_and_group_id' AND type='index'
338
+ 
339
+  (0.1ms) SELECT sql
340
+ FROM sqlite_master
341
+ WHERE name='index_coalescing_panda_sections_on_sis_id' AND type='index'
342
+ UNION ALL
343
+ SELECT sql
344
+ FROM sqlite_temp_master
345
+ WHERE name='index_coalescing_panda_sections_on_sis_id' AND type='index'
346
+
347
+  (0.1ms)  SELECT sql
348
+ FROM sqlite_master
349
+ WHERE name='index_sections_course' AND type='index'
350
+ UNION ALL
351
+ SELECT sql
352
+ FROM sqlite_temp_master
353
+ WHERE name='index_sections_course' AND type='index'
354
+ 
355
+  (0.1ms) SELECT sql
356
+ FROM sqlite_master
357
+ WHERE name='index_coalescing_panda_submissions_on_canvas_submission_id' AND type='index'
358
+ UNION ALL
359
+ SELECT sql
360
+ FROM sqlite_temp_master
361
+ WHERE name='index_coalescing_panda_submissions_on_canvas_submission_id' AND type='index'
362
+
363
+  (0.1ms)  SELECT sql
364
+ FROM sqlite_master
365
+ WHERE name='index_submissions_user_and_assignment' AND type='index'
366
+ UNION ALL
367
+ SELECT sql
368
+ FROM sqlite_temp_master
369
+ WHERE name='index_submissions_user_and_assignment' AND type='index'
370
+ 
371
+  (0.1ms) SELECT sql
372
+ FROM sqlite_master
373
+ WHERE name='index_coalescing_panda_terms_on_sis_id' AND type='index'
374
+ UNION ALL
375
+ SELECT sql
376
+ FROM sqlite_temp_master
377
+ WHERE name='index_coalescing_panda_terms_on_sis_id' AND type='index'
378
+
379
+  (0.1ms)  SELECT sql
380
+ FROM sqlite_master
381
+ WHERE name='index_terms_account' AND type='index'
382
+ UNION ALL
383
+ SELECT sql
384
+ FROM sqlite_temp_master
385
+ WHERE name='index_terms_account' AND type='index'
386
+ 
387
+  (0.1ms) SELECT sql
388
+ FROM sqlite_master
389
+ WHERE name='index_coalescing_panda_users_on_sis_id' AND type='index'
390
+ UNION ALL
391
+ SELECT sql
392
+ FROM sqlite_temp_master
393
+ WHERE name='index_coalescing_panda_users_on_sis_id' AND type='index'
394
+
395
+  (0.1ms)  SELECT sql
396
+ FROM sqlite_master
397
+ WHERE name='index_users_account' AND type='index'
398
+ UNION ALL
399
+ SELECT sql
400
+ FROM sqlite_temp_master
401
+ WHERE name='index_users_account' AND type='index'
402
+ 
403
+  (0.1ms) SELECT sql
404
+ FROM sqlite_master
405
+ WHERE name='delayed_jobs_priority' AND type='index'
406
+ UNION ALL
407
+ SELECT sql
408
+ FROM sqlite_temp_master
409
+ WHERE name='delayed_jobs_priority' AND type='index'
410
+
411
+ ActiveRecord::SchemaMigration Load (0.4ms) SELECT "schema_migrations".* FROM "schema_migrations"
412
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
413
+ Migrating to CreateCoalescingPandaGroupCategories (20150714205405)
414
+  (0.1ms) begin transaction
415
+  (1.2ms) CREATE TEMPORARY TABLE "acoalescing_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, "leader_id" integer, "coalescing_panda_group_category_id" integer)
416
+  (0.1ms)  SELECT sql
417
+ FROM sqlite_master
418
+ WHERE name='index_groups_context_and_group_id' AND type='index'
419
+ UNION ALL
420
+ SELECT sql
421
+ FROM sqlite_temp_master
422
+ WHERE name='index_groups_context_and_group_id' AND type='index'
423
+ 
424
+  (0.0ms) select sqlite_version(*)
425
+  (0.5ms) CREATE UNIQUE INDEX "tindex_groups_context_and_group_id" ON "acoalescing_panda_groups" ("context_id", "canvas_group_id")
426
+  (0.3ms) SELECT * FROM "coalescing_panda_groups"
427
+  (0.9ms) DROP TABLE "coalescing_panda_groups"
428
+  (0.2ms) 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, "leader_id" integer)
429
+  (0.1ms)  SELECT sql
430
+ FROM sqlite_master
431
+ WHERE name='tindex_groups_context_and_group_id' AND type='index'
432
+ UNION ALL
433
+ SELECT sql
434
+ FROM sqlite_temp_master
435
+ WHERE name='tindex_groups_context_and_group_id' AND type='index'
436
+ 
437
+  (0.5ms) CREATE UNIQUE INDEX "index_groups_context_and_group_id" ON "coalescing_panda_groups" ("context_id", "canvas_group_id")
438
+  (0.1ms) SELECT * FROM "acoalescing_panda_groups"
439
+  (0.1ms) DROP TABLE "acoalescing_panda_groups"
440
+  (0.1ms) CREATE TEMPORARY TABLE "acoalescing_panda_assignments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_course_id" integer NOT NULL, "name" varchar, "description" text, "canvas_assignment_id" varchar NOT NULL, "workflow_state" varchar, "points_possible" float, "due_at" datetime, "unlock_at" datetime, "lock_at" datetime, "created_at" datetime, "updated_at" datetime, "submission_types" text, "group_category_id" integer, "grade_group_students_individually" boolean, "published" boolean, "coalescing_panda_assignment_group_id" integer, "coalescing_panda_group_category_id" integer) 
441
+  (0.0ms) SELECT sql
442
+ FROM sqlite_master
443
+ WHERE name='index_assignments_course' AND type='index'
444
+ UNION ALL
445
+ SELECT sql
446
+ FROM sqlite_temp_master
447
+ WHERE name='index_assignments_course' AND type='index'
448
+
449
+  (0.1ms) CREATE UNIQUE INDEX "tindex_assignments_course" ON "acoalescing_panda_assignments" ("coalescing_panda_course_id", "canvas_assignment_id")
450
+  (0.4ms) SELECT * FROM "coalescing_panda_assignments"
451
+  (0.2ms) DROP TABLE "coalescing_panda_assignments"
452
+  (0.1ms) CREATE TABLE "coalescing_panda_assignments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "coalescing_panda_course_id" integer NOT NULL, "name" varchar, "description" text, "canvas_assignment_id" varchar NOT NULL, "workflow_state" varchar, "points_possible" float, "due_at" datetime, "unlock_at" datetime, "lock_at" datetime, "created_at" datetime, "updated_at" datetime, "submission_types" text, "group_category_id" integer, "grade_group_students_individually" boolean, "published" boolean, "coalescing_panda_assignment_group_id" integer)
453
+  (0.0ms)  SELECT sql
454
+ FROM sqlite_master
455
+ WHERE name='tindex_assignments_course' AND type='index'
456
+ UNION ALL
457
+ SELECT sql
458
+ FROM sqlite_temp_master
459
+ WHERE name='tindex_assignments_course' AND type='index'
460
+ 
461
+  (0.1ms) CREATE UNIQUE INDEX "index_assignments_course" ON "coalescing_panda_assignments" ("coalescing_panda_course_id", "canvas_assignment_id")
462
+  (0.0ms) SELECT * FROM "acoalescing_panda_assignments"
463
+  (0.1ms) DROP TABLE "acoalescing_panda_assignments"
464
+  (0.1ms)  SELECT sql
465
+ FROM sqlite_master
466
+ WHERE name='index_group_categories_context_and_context_type' AND type='index'
467
+ UNION ALL
468
+ SELECT sql
469
+ FROM sqlite_temp_master
470
+ WHERE name='index_group_categories_context_and_context_type' AND type='index'
471
+ 
472
+  (0.4ms) DROP INDEX "index_group_categories_context_and_context_type"
473
+  (0.4ms) DROP TABLE "coalescing_panda_group_category"
474
+ SQL (0.6ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = ? [["version", "20150714205405"]]
475
+  (1.6ms) commit transaction
476
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
477
+  (0.1ms)  SELECT sql
478
+ FROM sqlite_master
479
+ WHERE name='index_assignment_group_context' AND type='index'
480
+ UNION ALL
481
+ SELECT sql
482
+ FROM sqlite_temp_master
483
+ WHERE name='index_assignment_group_context' AND type='index'
484
+ 
485
+  (0.1ms) SELECT sql
486
+ FROM sqlite_master
487
+ WHERE name='index_assignment_group_course' AND type='index'
488
+ UNION ALL
489
+ SELECT sql
490
+ FROM sqlite_temp_master
491
+ WHERE name='index_assignment_group_course' AND type='index'
492
+
493
+  (0.1ms)  SELECT sql
494
+ FROM sqlite_master
495
+ WHERE name='index_assignments_course' AND type='index'
496
+ UNION ALL
497
+ SELECT sql
498
+ FROM sqlite_temp_master
499
+ WHERE name='index_assignments_course' AND type='index'
500
+ 
501
+  (0.1ms) SELECT sql
502
+ FROM sqlite_master
503
+ WHERE name='index_coalescing_panda_courses_on_sis_id' AND type='index'
504
+ UNION ALL
505
+ SELECT sql
506
+ FROM sqlite_temp_master
507
+ WHERE name='index_coalescing_panda_courses_on_sis_id' AND type='index'
508
+
509
+  (0.1ms)  SELECT sql
510
+ FROM sqlite_master
511
+ WHERE name='index_courses_term' AND type='index'
512
+ UNION ALL
513
+ SELECT sql
514
+ FROM sqlite_temp_master
515
+ WHERE name='index_courses_term' AND type='index'
516
+ 
517
+  (0.1ms) SELECT sql
518
+ FROM sqlite_master
519
+ WHERE name='index_courses_account' AND type='index'
520
+ UNION ALL
521
+ SELECT sql
522
+ FROM sqlite_temp_master
523
+ WHERE name='index_courses_account' AND type='index'
524
+
525
+  (0.1ms)  SELECT sql
526
+ FROM sqlite_master
527
+ WHERE name='index_coalescing_panda_enrollments_on_sis_id' AND type='index'
528
+ UNION ALL
529
+ SELECT sql
530
+ FROM sqlite_temp_master
531
+ WHERE name='index_coalescing_panda_enrollments_on_sis_id' AND type='index'
532
+ 
533
+  (0.1ms) SELECT sql
534
+ FROM sqlite_master
535
+ WHERE name='index_enrollments_user_and_section' AND type='index'
536
+ UNION ALL
537
+ SELECT sql
538
+ FROM sqlite_temp_master
539
+ WHERE name='index_enrollments_user_and_section' AND type='index'
540
+
541
+  (0.1ms)  SELECT sql
542
+ FROM sqlite_master
543
+ WHERE name='index_group_memberships_user_and_group' AND type='index'
544
+ UNION ALL
545
+ SELECT sql
546
+ FROM sqlite_temp_master
547
+ WHERE name='index_group_memberships_user_and_group' AND type='index'
548
+ 
549
+  (0.1ms) SELECT sql
550
+ FROM sqlite_master
551
+ WHERE name='index_groups_context_and_group_id' AND type='index'
552
+ UNION ALL
553
+ SELECT sql
554
+ FROM sqlite_temp_master
555
+ WHERE name='index_groups_context_and_group_id' AND type='index'
556
+
557
+  (0.1ms)  SELECT sql
558
+ FROM sqlite_master
559
+ WHERE name='index_coalescing_panda_sections_on_sis_id' AND type='index'
560
+ UNION ALL
561
+ SELECT sql
562
+ FROM sqlite_temp_master
563
+ WHERE name='index_coalescing_panda_sections_on_sis_id' AND type='index'
564
+ 
565
+  (0.1ms) SELECT sql
566
+ FROM sqlite_master
567
+ WHERE name='index_sections_course' AND type='index'
568
+ UNION ALL
569
+ SELECT sql
570
+ FROM sqlite_temp_master
571
+ WHERE name='index_sections_course' AND type='index'
572
+
573
+  (0.1ms)  SELECT sql
574
+ FROM sqlite_master
575
+ WHERE name='index_coalescing_panda_submissions_on_canvas_submission_id' AND type='index'
576
+ UNION ALL
577
+ SELECT sql
578
+ FROM sqlite_temp_master
579
+ WHERE name='index_coalescing_panda_submissions_on_canvas_submission_id' AND type='index'
580
+ 
581
+  (0.1ms) SELECT sql
582
+ FROM sqlite_master
583
+ WHERE name='index_submissions_user_and_assignment' AND type='index'
584
+ UNION ALL
585
+ SELECT sql
586
+ FROM sqlite_temp_master
587
+ WHERE name='index_submissions_user_and_assignment' AND type='index'
588
+
589
+  (0.1ms)  SELECT sql
590
+ FROM sqlite_master
591
+ WHERE name='index_coalescing_panda_terms_on_sis_id' AND type='index'
592
+ UNION ALL
593
+ SELECT sql
594
+ FROM sqlite_temp_master
595
+ WHERE name='index_coalescing_panda_terms_on_sis_id' AND type='index'
596
+ 
597
+  (0.1ms) SELECT sql
598
+ FROM sqlite_master
599
+ WHERE name='index_terms_account' AND type='index'
600
+ UNION ALL
601
+ SELECT sql
602
+ FROM sqlite_temp_master
603
+ WHERE name='index_terms_account' AND type='index'
604
+
605
+  (0.1ms)  SELECT sql
606
+ FROM sqlite_master
607
+ WHERE name='index_coalescing_panda_users_on_sis_id' AND type='index'
608
+ UNION ALL
609
+ SELECT sql
610
+ FROM sqlite_temp_master
611
+ WHERE name='index_coalescing_panda_users_on_sis_id' AND type='index'
612
+ 
613
+  (0.1ms) SELECT sql
614
+ FROM sqlite_master
615
+ WHERE name='index_users_account' AND type='index'
616
+ UNION ALL
617
+ SELECT sql
618
+ FROM sqlite_temp_master
619
+ WHERE name='index_users_account' AND type='index'
620
+
621
+  (0.1ms)  SELECT sql
622
+ FROM sqlite_master
623
+ WHERE name='delayed_jobs_priority' AND type='index'
624
+ UNION ALL
625
+ SELECT sql
626
+ FROM sqlite_temp_master
627
+ WHERE name='delayed_jobs_priority' AND type='index'
628
+