canvas_sync 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +178 -0
  3. data/Rakefile +23 -0
  4. data/lib/canvas_sync.rb +96 -0
  5. data/lib/canvas_sync/generators/install_generator.rb +54 -0
  6. data/lib/canvas_sync/generators/templates/course.rb +8 -0
  7. data/lib/canvas_sync/generators/templates/create_courses.rb +21 -0
  8. data/lib/canvas_sync/generators/templates/create_enrollments.rb +26 -0
  9. data/lib/canvas_sync/generators/templates/create_sections.rb +20 -0
  10. data/lib/canvas_sync/generators/templates/create_terms.rb +18 -0
  11. data/lib/canvas_sync/generators/templates/create_users.rb +18 -0
  12. data/lib/canvas_sync/generators/templates/enrollment.rb +8 -0
  13. data/lib/canvas_sync/generators/templates/section.rb +7 -0
  14. data/lib/canvas_sync/generators/templates/term.rb +28 -0
  15. data/lib/canvas_sync/generators/templates/user.rb +6 -0
  16. data/lib/canvas_sync/importers/bulk_importer.rb +54 -0
  17. data/lib/canvas_sync/jobs/application_job.rb +25 -0
  18. data/lib/canvas_sync/jobs/report_checker.rb +48 -0
  19. data/lib/canvas_sync/jobs/report_processor_job.rb +36 -0
  20. data/lib/canvas_sync/jobs/report_starter.rb +29 -0
  21. data/lib/canvas_sync/jobs/sync_provisioning_report_job.rb +58 -0
  22. data/lib/canvas_sync/jobs/sync_terms_job.rb +23 -0
  23. data/lib/canvas_sync/jobs/sync_users_job.rb +32 -0
  24. data/lib/canvas_sync/processors/provisioning_report_processor.rb +118 -0
  25. data/lib/canvas_sync/version.rb +3 -0
  26. data/spec/canvas_sync/canvas_sync_spec.rb +60 -0
  27. data/spec/canvas_sync/jobs/report_checker_spec.rb +62 -0
  28. data/spec/canvas_sync/jobs/report_processor_job_spec.rb +30 -0
  29. data/spec/canvas_sync/jobs/report_starter_spec.rb +27 -0
  30. data/spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb +81 -0
  31. data/spec/canvas_sync/jobs/sync_terms_job_spec.rb +18 -0
  32. data/spec/canvas_sync/jobs/sync_users_job_spec.rb +18 -0
  33. data/spec/canvas_sync/models/course_spec.rb +30 -0
  34. data/spec/canvas_sync/models/enrollment_spec.rb +30 -0
  35. data/spec/canvas_sync/models/section_spec.rb +24 -0
  36. data/spec/canvas_sync/models/term_spec.rb +71 -0
  37. data/spec/canvas_sync/models/user_spec.rb +18 -0
  38. data/spec/canvas_sync/processors/provisioning_report_processor_spec.rb +41 -0
  39. data/spec/dummy/README.rdoc +1 -0
  40. data/spec/dummy/Rakefile +6 -0
  41. data/spec/dummy/app/models/application_record.rb +3 -0
  42. data/spec/dummy/app/models/course.rb +14 -0
  43. data/spec/dummy/app/models/enrollment.rb +14 -0
  44. data/spec/dummy/app/models/section.rb +13 -0
  45. data/spec/dummy/app/models/term.rb +34 -0
  46. data/spec/dummy/app/models/user.rb +12 -0
  47. data/spec/dummy/bin/rails +4 -0
  48. data/spec/dummy/config.ru +4 -0
  49. data/spec/dummy/config/application.rb +26 -0
  50. data/spec/dummy/config/boot.rb +5 -0
  51. data/spec/dummy/config/database.yml +25 -0
  52. data/spec/dummy/config/environment.rb +5 -0
  53. data/spec/dummy/config/environments/development.rb +41 -0
  54. data/spec/dummy/config/environments/test.rb +42 -0
  55. data/spec/dummy/config/initializers/assets.rb +11 -0
  56. data/spec/dummy/config/initializers/session_store.rb +3 -0
  57. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  58. data/spec/dummy/config/routes.rb +2 -0
  59. data/spec/dummy/config/secrets.yml +22 -0
  60. data/spec/dummy/db/development.sqlite3 +0 -0
  61. data/spec/dummy/db/migrate/20170831220702_create_courses.rb +27 -0
  62. data/spec/dummy/db/migrate/20170831221129_create_users.rb +24 -0
  63. data/spec/dummy/db/migrate/20170905192509_create_enrollments.rb +32 -0
  64. data/spec/dummy/db/migrate/20170906193506_create_terms.rb +24 -0
  65. data/spec/dummy/db/migrate/20170906203438_create_sections.rb +26 -0
  66. data/spec/dummy/db/schema.rb +88 -0
  67. data/spec/dummy/db/test.sqlite3 +0 -0
  68. data/spec/dummy/log/development.log +828 -0
  69. data/spec/dummy/log/test.log +14582 -0
  70. data/spec/factories/course_factory.rb +10 -0
  71. data/spec/factories/enrollment_factory.rb +5 -0
  72. data/spec/factories/section_factory.rb +5 -0
  73. data/spec/factories/term_factory.rb +10 -0
  74. data/spec/factories/user_factory.rb +9 -0
  75. data/spec/spec_helper.rb +46 -0
  76. data/spec/support/fake_canvas.rb +22 -0
  77. data/spec/support/fixtures/canvas_responses/terms.json +64 -0
  78. data/spec/support/fixtures/reports/courses.csv +3 -0
  79. data/spec/support/fixtures/reports/enrollments.csv +3 -0
  80. data/spec/support/fixtures/reports/provisioning_csv +0 -0
  81. data/spec/support/fixtures/reports/provisioning_csv_unzipped/courses.csv +3 -0
  82. data/spec/support/fixtures/reports/provisioning_csv_unzipped/users.csv +4 -0
  83. data/spec/support/fixtures/reports/sections.csv +3 -0
  84. data/spec/support/fixtures/reports/users.csv +4 -0
  85. metadata +423 -0
@@ -0,0 +1,32 @@
1
+ #
2
+ # AUTO GENERATED MIGRATION
3
+ # This migration was auto generated by the CanvasSync Gem.
4
+ # You can add new columns to this table, but removing or
5
+ # re-naming ones created here may break Canvas Syncing.
6
+ #
7
+
8
+
9
+ class CreateEnrollments < ActiveRecord::Migration[5.1]
10
+ def change
11
+ create_table :enrollments do |t|
12
+ t.bigint :canvas_enrollment_id, null: false
13
+ t.bigint :canvas_course_id
14
+ t.string :course_sis_id
15
+ t.bigint :canvas_user_id
16
+ t.string :user_sis_id
17
+ t.string :role
18
+ t.integer :role_id
19
+ t.bigint :canvas_section_id
20
+ t.string :section_sis_id
21
+ t.string :status
22
+ t.string :base_role_type
23
+
24
+
25
+ t.timestamps
26
+ end
27
+
28
+ add_index :enrollments, :canvas_enrollment_id, unique: true
29
+ add_index :enrollments, :canvas_course_id
30
+ add_index :enrollments, :canvas_user_id
31
+ end
32
+ end
@@ -0,0 +1,24 @@
1
+ #
2
+ # AUTO GENERATED MIGRATION
3
+ # This migration was auto generated by the CanvasSync Gem.
4
+ # You can add new columns to this table, but removing or
5
+ # re-naming ones created here may break Canvas Syncing.
6
+ #
7
+
8
+
9
+ class CreateTerms < ActiveRecord::Migration[5.1]
10
+ def change
11
+ create_table :terms do |t|
12
+ t.integer :canvas_term_id, null: false
13
+ t.string :name
14
+ t.datetime :start_at
15
+ t.datetime :end_at
16
+ t.string :workflow_state
17
+ t.integer :grading_period_group_id
18
+ t.string :sis_id
19
+
20
+ t.timestamps
21
+ end
22
+ add_index :terms, :canvas_term_id, unique: true
23
+ end
24
+ end
@@ -0,0 +1,26 @@
1
+ #
2
+ # AUTO GENERATED MIGRATION
3
+ # This migration was auto generated by the CanvasSync Gem.
4
+ # You can add new columns to this table, but removing or
5
+ # re-naming ones created here may break Canvas Syncing.
6
+ #
7
+
8
+
9
+ class CreateSections < ActiveRecord::Migration[5.1]
10
+ def change
11
+ create_table :sections do |t|
12
+ t.bigint :canvas_section_id, null: false
13
+ t.string :sis_id
14
+ t.bigint :canvas_course_id
15
+ t.string :name
16
+ t.string :status
17
+ t.datetime :start_date
18
+ t.datetime :end_date
19
+
20
+ t.timestamps
21
+ end
22
+
23
+ add_index :sections, :canvas_section_id, unique: true
24
+ add_index :sections, :canvas_course_id
25
+ end
26
+ end
@@ -0,0 +1,88 @@
1
+ # This file is auto-generated from the current state of the database. Instead
2
+ # of editing this file, please use the migrations feature of Active Record to
3
+ # incrementally modify your database, and then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your
6
+ # database schema. If you need to create the application database on another
7
+ # system, you should be using db:schema:load, not running all the migrations
8
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
10
+ #
11
+ # It's strongly recommended that you check this file into your version control system.
12
+
13
+ ActiveRecord::Schema.define(version: 20170906203438) do
14
+
15
+ create_table "courses", force: :cascade do |t|
16
+ t.bigint "canvas_course_id", null: false
17
+ t.string "sis_id"
18
+ t.string "short_name"
19
+ t.string "long_name"
20
+ t.integer "canvas_account_id"
21
+ t.integer "canvas_term_id"
22
+ t.integer "term_sis_id"
23
+ t.datetime "start_date"
24
+ t.datetime "end_date"
25
+ t.datetime "created_at", null: false
26
+ t.datetime "updated_at", null: false
27
+ t.index ["canvas_course_id"], name: "index_courses_on_canvas_course_id", unique: true
28
+ end
29
+
30
+ create_table "enrollments", force: :cascade do |t|
31
+ t.bigint "canvas_enrollment_id", null: false
32
+ t.bigint "canvas_course_id"
33
+ t.string "course_sis_id"
34
+ t.bigint "canvas_user_id"
35
+ t.string "user_sis_id"
36
+ t.string "role"
37
+ t.integer "role_id"
38
+ t.bigint "canvas_section_id"
39
+ t.string "section_sis_id"
40
+ t.string "status"
41
+ t.string "base_role_type"
42
+ t.datetime "created_at", null: false
43
+ t.datetime "updated_at", null: false
44
+ t.index ["canvas_course_id"], name: "index_enrollments_on_canvas_course_id"
45
+ t.index ["canvas_enrollment_id"], name: "index_enrollments_on_canvas_enrollment_id", unique: true
46
+ t.index ["canvas_user_id"], name: "index_enrollments_on_canvas_user_id"
47
+ end
48
+
49
+ create_table "sections", force: :cascade do |t|
50
+ t.bigint "canvas_section_id", null: false
51
+ t.string "sis_id"
52
+ t.bigint "canvas_course_id"
53
+ t.string "name"
54
+ t.string "status"
55
+ t.datetime "start_date"
56
+ t.datetime "end_date"
57
+ t.datetime "created_at", null: false
58
+ t.datetime "updated_at", null: false
59
+ t.index ["canvas_course_id"], name: "index_sections_on_canvas_course_id"
60
+ t.index ["canvas_section_id"], name: "index_sections_on_canvas_section_id", unique: true
61
+ end
62
+
63
+ create_table "terms", force: :cascade do |t|
64
+ t.integer "canvas_term_id", null: false
65
+ t.string "name"
66
+ t.datetime "start_at"
67
+ t.datetime "end_at"
68
+ t.string "workflow_state"
69
+ t.integer "grading_period_group_id"
70
+ t.string "sis_id"
71
+ t.datetime "created_at", null: false
72
+ t.datetime "updated_at", null: false
73
+ t.index ["canvas_term_id"], name: "index_terms_on_canvas_term_id", unique: true
74
+ end
75
+
76
+ create_table "users", force: :cascade do |t|
77
+ t.bigint "canvas_user_id", null: false
78
+ t.string "sis_id"
79
+ t.string "email"
80
+ t.string "first_name"
81
+ t.string "last_name"
82
+ t.string "status"
83
+ t.datetime "created_at", null: false
84
+ t.datetime "updated_at", null: false
85
+ t.index ["canvas_user_id"], name: "index_users_on_canvas_user_id", unique: true
86
+ end
87
+
88
+ end
@@ -0,0 +1,828 @@
1
+  (0.1ms) SELECT sqlite_version(*)
2
+  (6.4ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
3
+  (0.9ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
4
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
5
+ Migrating to CreateCourses (20170831220702)
6
+  (0.1ms) begin transaction
7
+  (0.4ms) CREATE TABLE "courses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_course_id" bigint NOT NULL, "sis_id" varchar, "short_name" varchar, "long_name" varchar, "canvas_account_id" integer, "canvas_term_id" integer, "term_sis_id" integer, "start_date" datetime, "end_date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
8
+  (0.1ms) CREATE UNIQUE INDEX "index_courses_on_canvas_course_id" ON "courses" ("canvas_course_id")
9
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831220702"]]
10
+  (1.0ms) commit transaction
11
+ Migrating to CreateUsers (20170831221129)
12
+  (0.0ms) begin transaction
13
+  (0.3ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_user_id" bigint NOT NULL, "sis_id" varchar, "email" varchar, "first_name" varchar, "last_name" varchar, "status" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
14
+  (0.1ms) CREATE UNIQUE INDEX "index_users_on_canvas_user_id" ON "users" ("canvas_user_id")
15
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831221129"]]
16
+  (0.9ms) commit transaction
17
+ Migrating to CreateTerms (20170906193506)
18
+  (0.0ms) begin transaction
19
+  (0.3ms) CREATE TABLE "terms" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_term_id" integer NOT NULL, "name" varchar, "start_at" datetime, "end_at" datetime, "workflow_state" varchar, "grading_period_group_id" integer, "sis_id" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
20
+  (0.1ms) CREATE UNIQUE INDEX "index_terms_on_canvas_term_id" ON "terms" ("canvas_term_id")
21
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906193506"]]
22
+  (0.8ms) commit transaction
23
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
24
+  (0.0ms) begin transaction
25
+ SQL (0.2ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2017-09-06 19:35:30.926435"], ["updated_at", "2017-09-06 19:35:30.926435"]]
26
+  (0.8ms) commit transaction
27
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
28
+  (0.1ms)  SELECT sql
29
+ FROM sqlite_master
30
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
31
+ UNION ALL
32
+ SELECT sql
33
+ FROM sqlite_temp_master
34
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
35
+ 
36
+  (0.1ms)  SELECT sql
37
+ FROM sqlite_master
38
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
39
+ UNION ALL
40
+ SELECT sql
41
+ FROM sqlite_temp_master
42
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
43
+ 
44
+  (0.1ms)  SELECT sql
45
+ FROM sqlite_master
46
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
47
+ UNION ALL
48
+ SELECT sql
49
+ FROM sqlite_temp_master
50
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
51
+ 
52
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
53
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
54
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
55
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
56
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
57
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
58
+  (0.1ms) SELECT sqlite_version(*)
59
+  (6.9ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
60
+  (1.5ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
61
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
62
+ Migrating to CreateCourses (20170831220702)
63
+  (0.0ms) begin transaction
64
+  (0.4ms) CREATE TABLE "courses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_course_id" bigint NOT NULL, "sis_id" varchar, "short_name" varchar, "long_name" varchar, "canvas_account_id" integer, "canvas_term_id" integer, "term_sis_id" integer, "start_date" datetime, "end_date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
65
+  (0.2ms) CREATE UNIQUE INDEX "index_courses_on_canvas_course_id" ON "courses" ("canvas_course_id")
66
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831220702"]]
67
+  (0.9ms) commit transaction
68
+ Migrating to CreateUsers (20170831221129)
69
+  (0.0ms) begin transaction
70
+  (0.3ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_user_id" bigint NOT NULL, "sis_id" varchar, "email" varchar, "first_name" varchar, "last_name" varchar, "status" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
71
+  (0.1ms) CREATE UNIQUE INDEX "index_users_on_canvas_user_id" ON "users" ("canvas_user_id")
72
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831221129"]]
73
+  (0.9ms) commit transaction
74
+ Migrating to CreateTerms (20170906193506)
75
+  (0.0ms) begin transaction
76
+  (0.3ms) CREATE TABLE "terms" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_term_id" integer NOT NULL, "name" varchar, "start_at" datetime, "end_at" datetime, "workflow_state" varchar, "grading_period_group_id" integer, "sis_id" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
77
+  (0.1ms) CREATE UNIQUE INDEX "index_terms_on_canvas_term_id" ON "terms" ("canvas_term_id")
78
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906193506"]]
79
+  (0.6ms) commit transaction
80
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
81
+  (0.0ms) begin transaction
82
+ SQL (0.3ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2017-09-06 19:36:46.224786"], ["updated_at", "2017-09-06 19:36:46.224786"]]
83
+  (0.7ms) commit transaction
84
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
85
+  (0.1ms)  SELECT sql
86
+ FROM sqlite_master
87
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
88
+ UNION ALL
89
+ SELECT sql
90
+ FROM sqlite_temp_master
91
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
92
+ 
93
+  (0.1ms)  SELECT sql
94
+ FROM sqlite_master
95
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
96
+ UNION ALL
97
+ SELECT sql
98
+ FROM sqlite_temp_master
99
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
100
+ 
101
+  (0.1ms)  SELECT sql
102
+ FROM sqlite_master
103
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
104
+ UNION ALL
105
+ SELECT sql
106
+ FROM sqlite_temp_master
107
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
108
+ 
109
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
110
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
111
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
112
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
113
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
114
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
115
+  (0.1ms) SELECT sqlite_version(*)
116
+  (6.8ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
117
+  (1.1ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
118
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
119
+ Migrating to CreateCourses (20170831220702)
120
+  (0.1ms) begin transaction
121
+  (0.4ms) CREATE TABLE "courses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_course_id" bigint NOT NULL, "sis_id" varchar, "short_name" varchar, "long_name" varchar, "canvas_account_id" integer, "canvas_term_id" integer, "term_sis_id" integer, "start_date" datetime, "end_date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
122
+  (0.1ms) CREATE UNIQUE INDEX "index_courses_on_canvas_course_id" ON "courses" ("canvas_course_id")
123
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831220702"]]
124
+  (1.3ms) commit transaction
125
+ Migrating to CreateUsers (20170831221129)
126
+  (0.1ms) begin transaction
127
+  (0.3ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_user_id" bigint NOT NULL, "sis_id" varchar, "email" varchar, "first_name" varchar, "last_name" varchar, "status" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
128
+  (0.1ms) CREATE UNIQUE INDEX "index_users_on_canvas_user_id" ON "users" ("canvas_user_id")
129
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831221129"]]
130
+  (0.9ms) commit transaction
131
+ Migrating to CreateEnrollments (20170905192509)
132
+  (0.0ms) begin transaction
133
+  (0.3ms) CREATE TABLE "enrollments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_enrollment_id" bigint NOT NULL, "canvas_course_id" bigint, "course_sis_id" varchar, "canvas_user_id" bigint, "user_sis_id" varchar, "role" varchar, "role_id" integer, "canvas_section_id" bigint, "section_sis_id" varchar, "status" varchar, "base_role_type" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
134
+  (0.2ms) CREATE UNIQUE INDEX "index_enrollments_on_canvas_enrollment_id" ON "enrollments" ("canvas_enrollment_id")
135
+  (0.1ms)  SELECT sql
136
+ FROM sqlite_master
137
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
138
+ UNION ALL
139
+ SELECT sql
140
+ FROM sqlite_temp_master
141
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
142
+ 
143
+  (0.1ms) CREATE INDEX "index_enrollments_on_canvas_course_id" ON "enrollments" ("canvas_course_id")
144
+  (0.1ms)  SELECT sql
145
+ FROM sqlite_master
146
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
147
+ UNION ALL
148
+ SELECT sql
149
+ FROM sqlite_temp_master
150
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
151
+ 
152
+  (0.1ms)  SELECT sql
153
+ FROM sqlite_master
154
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
155
+ UNION ALL
156
+ SELECT sql
157
+ FROM sqlite_temp_master
158
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
159
+ 
160
+  (0.1ms) CREATE INDEX "index_enrollments_on_canvas_user_id" ON "enrollments" ("canvas_user_id")
161
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170905192509"]]
162
+  (0.9ms) commit transaction
163
+ Migrating to CreateTerms (20170906193506)
164
+  (0.1ms) begin transaction
165
+  (0.3ms) CREATE TABLE "terms" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_term_id" integer NOT NULL, "name" varchar, "start_at" datetime, "end_at" datetime, "workflow_state" varchar, "grading_period_group_id" integer, "sis_id" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
166
+  (0.1ms) CREATE UNIQUE INDEX "index_terms_on_canvas_term_id" ON "terms" ("canvas_term_id")
167
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906193506"]]
168
+  (0.8ms) commit transaction
169
+ Migrating to CreateSections (20170906201047)
170
+  (0.0ms) begin transaction
171
+  (0.3ms) CREATE TABLE "sections" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_section_id" bigint NOT NULL, "sis_id" varchar, "canvas_course_id" bigint, "name" varchar, "status" varchar, "start_date" datetime, "end_Date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
172
+  (0.1ms) CREATE UNIQUE INDEX "index_sections_on_canvas_section_id" ON "sections" ("canvas_section_id")
173
+  (0.1ms)  SELECT sql
174
+ FROM sqlite_master
175
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
176
+ UNION ALL
177
+ SELECT sql
178
+ FROM sqlite_temp_master
179
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
180
+ 
181
+  (0.1ms) CREATE INDEX "index_sections_on_canvas_course_id" ON "sections" ("canvas_course_id")
182
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906201047"]]
183
+  (1.0ms) commit transaction
184
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
185
+  (0.0ms) begin transaction
186
+ SQL (0.3ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2017-09-06 20:10:52.433058"], ["updated_at", "2017-09-06 20:10:52.433058"]]
187
+  (1.3ms) commit transaction
188
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
189
+  (0.1ms)  SELECT sql
190
+ FROM sqlite_master
191
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
192
+ UNION ALL
193
+ SELECT sql
194
+ FROM sqlite_temp_master
195
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
196
+ 
197
+  (0.1ms)  SELECT sql
198
+ FROM sqlite_master
199
+ WHERE name='index_enrollments_on_canvas_user_id' AND type='index'
200
+ UNION ALL
201
+ SELECT sql
202
+ FROM sqlite_temp_master
203
+ WHERE name='index_enrollments_on_canvas_user_id' AND type='index'
204
+ 
205
+  (0.1ms)  SELECT sql
206
+ FROM sqlite_master
207
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
208
+ UNION ALL
209
+ SELECT sql
210
+ FROM sqlite_temp_master
211
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
212
+ 
213
+  (0.1ms)  SELECT sql
214
+ FROM sqlite_master
215
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
216
+ UNION ALL
217
+ SELECT sql
218
+ FROM sqlite_temp_master
219
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
220
+ 
221
+  (0.1ms)  SELECT sql
222
+ FROM sqlite_master
223
+ WHERE name='index_sections_on_canvas_course_id' AND type='index'
224
+ UNION ALL
225
+ SELECT sql
226
+ FROM sqlite_temp_master
227
+ WHERE name='index_sections_on_canvas_course_id' AND type='index'
228
+ 
229
+  (0.1ms)  SELECT sql
230
+ FROM sqlite_master
231
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
232
+ UNION ALL
233
+ SELECT sql
234
+ FROM sqlite_temp_master
235
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
236
+ 
237
+  (0.1ms)  SELECT sql
238
+ FROM sqlite_master
239
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
240
+ UNION ALL
241
+ SELECT sql
242
+ FROM sqlite_temp_master
243
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
244
+ 
245
+  (0.1ms)  SELECT sql
246
+ FROM sqlite_master
247
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
248
+ UNION ALL
249
+ SELECT sql
250
+ FROM sqlite_temp_master
251
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
252
+ 
253
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
254
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
255
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
256
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
257
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
258
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
259
+  (0.1ms) SELECT sqlite_version(*)
260
+  (6.9ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
261
+  (0.8ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
262
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
263
+ Migrating to CreateCourses (20170831220702)
264
+  (0.1ms) begin transaction
265
+  (0.4ms) CREATE TABLE "courses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_course_id" bigint NOT NULL, "sis_id" varchar, "short_name" varchar, "long_name" varchar, "canvas_account_id" integer, "canvas_term_id" integer, "term_sis_id" integer, "start_date" datetime, "end_date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
266
+  (0.1ms) CREATE UNIQUE INDEX "index_courses_on_canvas_course_id" ON "courses" ("canvas_course_id")
267
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831220702"]]
268
+  (1.1ms) commit transaction
269
+ Migrating to CreateUsers (20170831221129)
270
+  (0.0ms) begin transaction
271
+  (0.3ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_user_id" bigint NOT NULL, "sis_id" varchar, "email" varchar, "first_name" varchar, "last_name" varchar, "status" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
272
+  (0.1ms) CREATE UNIQUE INDEX "index_users_on_canvas_user_id" ON "users" ("canvas_user_id")
273
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831221129"]]
274
+  (0.9ms) commit transaction
275
+ Migrating to CreateEnrollments (20170905192509)
276
+  (0.1ms) begin transaction
277
+  (0.3ms) CREATE TABLE "enrollments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_enrollment_id" bigint NOT NULL, "canvas_course_id" bigint, "course_sis_id" varchar, "canvas_user_id" bigint, "user_sis_id" varchar, "role" varchar, "role_id" integer, "canvas_section_id" bigint, "section_sis_id" varchar, "status" varchar, "base_role_type" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
278
+  (0.1ms) CREATE UNIQUE INDEX "index_enrollments_on_canvas_enrollment_id" ON "enrollments" ("canvas_enrollment_id")
279
+  (0.1ms)  SELECT sql
280
+ FROM sqlite_master
281
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
282
+ UNION ALL
283
+ SELECT sql
284
+ FROM sqlite_temp_master
285
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
286
+ 
287
+  (0.1ms) CREATE INDEX "index_enrollments_on_canvas_course_id" ON "enrollments" ("canvas_course_id")
288
+  (0.1ms)  SELECT sql
289
+ FROM sqlite_master
290
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
291
+ UNION ALL
292
+ SELECT sql
293
+ FROM sqlite_temp_master
294
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
295
+ 
296
+  (0.1ms)  SELECT sql
297
+ FROM sqlite_master
298
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
299
+ UNION ALL
300
+ SELECT sql
301
+ FROM sqlite_temp_master
302
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
303
+ 
304
+  (0.1ms) CREATE INDEX "index_enrollments_on_canvas_user_id" ON "enrollments" ("canvas_user_id")
305
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170905192509"]]
306
+  (1.1ms) commit transaction
307
+ Migrating to CreateTerms (20170906193506)
308
+  (0.1ms) begin transaction
309
+  (0.3ms) CREATE TABLE "terms" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_term_id" integer NOT NULL, "name" varchar, "start_at" datetime, "end_at" datetime, "workflow_state" varchar, "grading_period_group_id" integer, "sis_id" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
310
+  (0.1ms) CREATE UNIQUE INDEX "index_terms_on_canvas_term_id" ON "terms" ("canvas_term_id")
311
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906193506"]]
312
+  (0.9ms) commit transaction
313
+ Migrating to CreateSections (20170906201047)
314
+  (0.0ms) begin transaction
315
+  (0.3ms) CREATE TABLE "sections" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_section_id" bigint NOT NULL, "sis_id" varchar, "canvas_course_id" bigint, "name" varchar, "status" varchar, "start_date" datetime, "end_Date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
316
+  (0.1ms) CREATE UNIQUE INDEX "index_sections_on_canvas_section_id" ON "sections" ("canvas_section_id")
317
+  (0.1ms)  SELECT sql
318
+ FROM sqlite_master
319
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
320
+ UNION ALL
321
+ SELECT sql
322
+ FROM sqlite_temp_master
323
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
324
+ 
325
+  (0.1ms) CREATE INDEX "index_sections_on_canvas_course_id" ON "sections" ("canvas_course_id")
326
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906201047"]]
327
+  (0.7ms) commit transaction
328
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
329
+  (0.0ms) begin transaction
330
+ SQL (0.3ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2017-09-06 20:18:57.252688"], ["updated_at", "2017-09-06 20:18:57.252688"]]
331
+  (0.5ms) commit transaction
332
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
333
+  (0.1ms)  SELECT sql
334
+ FROM sqlite_master
335
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
336
+ UNION ALL
337
+ SELECT sql
338
+ FROM sqlite_temp_master
339
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
340
+ 
341
+  (0.1ms)  SELECT sql
342
+ FROM sqlite_master
343
+ WHERE name='index_enrollments_on_canvas_user_id' AND type='index'
344
+ UNION ALL
345
+ SELECT sql
346
+ FROM sqlite_temp_master
347
+ WHERE name='index_enrollments_on_canvas_user_id' AND type='index'
348
+ 
349
+  (0.1ms)  SELECT sql
350
+ FROM sqlite_master
351
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
352
+ UNION ALL
353
+ SELECT sql
354
+ FROM sqlite_temp_master
355
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
356
+ 
357
+  (0.1ms)  SELECT sql
358
+ FROM sqlite_master
359
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
360
+ UNION ALL
361
+ SELECT sql
362
+ FROM sqlite_temp_master
363
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
364
+ 
365
+  (0.1ms)  SELECT sql
366
+ FROM sqlite_master
367
+ WHERE name='index_sections_on_canvas_course_id' AND type='index'
368
+ UNION ALL
369
+ SELECT sql
370
+ FROM sqlite_temp_master
371
+ WHERE name='index_sections_on_canvas_course_id' AND type='index'
372
+ 
373
+  (0.1ms)  SELECT sql
374
+ FROM sqlite_master
375
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
376
+ UNION ALL
377
+ SELECT sql
378
+ FROM sqlite_temp_master
379
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
380
+ 
381
+  (0.1ms)  SELECT sql
382
+ FROM sqlite_master
383
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
384
+ UNION ALL
385
+ SELECT sql
386
+ FROM sqlite_temp_master
387
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
388
+ 
389
+  (0.1ms)  SELECT sql
390
+ FROM sqlite_master
391
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
392
+ UNION ALL
393
+ SELECT sql
394
+ FROM sqlite_temp_master
395
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
396
+ 
397
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
398
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
399
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
400
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
401
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
402
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
403
+  (0.1ms) SELECT sqlite_version(*)
404
+  (7.1ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
405
+  (1.3ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
406
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
407
+ Migrating to CreateCourses (20170831220702)
408
+  (0.1ms) begin transaction
409
+  (0.5ms) CREATE TABLE "courses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_course_id" bigint NOT NULL, "sis_id" varchar, "short_name" varchar, "long_name" varchar, "canvas_account_id" integer, "canvas_term_id" integer, "term_sis_id" integer, "start_date" datetime, "end_date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
410
+  (0.1ms) CREATE UNIQUE INDEX "index_courses_on_canvas_course_id" ON "courses" ("canvas_course_id")
411
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831220702"]]
412
+  (1.0ms) commit transaction
413
+ Migrating to CreateUsers (20170831221129)
414
+  (0.1ms) begin transaction
415
+  (0.4ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_user_id" bigint NOT NULL, "sis_id" varchar, "email" varchar, "first_name" varchar, "last_name" varchar, "status" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
416
+  (0.1ms) CREATE UNIQUE INDEX "index_users_on_canvas_user_id" ON "users" ("canvas_user_id")
417
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831221129"]]
418
+  (1.0ms) commit transaction
419
+ Migrating to CreateEnrollments (20170905192509)
420
+  (0.0ms) begin transaction
421
+  (0.3ms) CREATE TABLE "enrollments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_enrollment_id" bigint NOT NULL, "canvas_course_id" bigint, "course_sis_id" varchar, "canvas_user_id" bigint, "user_sis_id" varchar, "role" varchar, "role_id" integer, "canvas_section_id" bigint, "section_sis_id" varchar, "status" varchar, "base_role_type" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
422
+  (0.1ms) CREATE UNIQUE INDEX "index_enrollments_on_canvas_enrollment_id" ON "enrollments" ("canvas_enrollment_id")
423
+  (0.1ms)  SELECT sql
424
+ FROM sqlite_master
425
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
426
+ UNION ALL
427
+ SELECT sql
428
+ FROM sqlite_temp_master
429
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
430
+ 
431
+  (0.1ms) CREATE INDEX "index_enrollments_on_canvas_course_id" ON "enrollments" ("canvas_course_id")
432
+  (0.1ms)  SELECT sql
433
+ FROM sqlite_master
434
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
435
+ UNION ALL
436
+ SELECT sql
437
+ FROM sqlite_temp_master
438
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
439
+ 
440
+  (0.1ms)  SELECT sql
441
+ FROM sqlite_master
442
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
443
+ UNION ALL
444
+ SELECT sql
445
+ FROM sqlite_temp_master
446
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
447
+ 
448
+  (0.1ms) CREATE INDEX "index_enrollments_on_canvas_user_id" ON "enrollments" ("canvas_user_id")
449
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170905192509"]]
450
+  (0.8ms) commit transaction
451
+ Migrating to CreateTerms (20170906193506)
452
+  (0.1ms) begin transaction
453
+  (0.5ms) CREATE TABLE "terms" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_term_id" integer NOT NULL, "name" varchar, "start_at" datetime, "end_at" datetime, "workflow_state" varchar, "grading_period_group_id" integer, "sis_id" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
454
+  (0.2ms) CREATE UNIQUE INDEX "index_terms_on_canvas_term_id" ON "terms" ("canvas_term_id")
455
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906193506"]]
456
+  (1.1ms) commit transaction
457
+ Migrating to CreateSections (20170906203438)
458
+  (0.1ms) begin transaction
459
+  (0.5ms) CREATE TABLE "sections" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_section_id" bigint NOT NULL, "sis_id" varchar, "canvas_course_id" bigint, "name" varchar, "status" varchar, "start_date" datetime, "end_date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
460
+  (0.1ms) CREATE UNIQUE INDEX "index_sections_on_canvas_section_id" ON "sections" ("canvas_section_id")
461
+  (0.1ms)  SELECT sql
462
+ FROM sqlite_master
463
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
464
+ UNION ALL
465
+ SELECT sql
466
+ FROM sqlite_temp_master
467
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
468
+ 
469
+  (0.1ms) CREATE INDEX "index_sections_on_canvas_course_id" ON "sections" ("canvas_course_id")
470
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906203438"]]
471
+  (1.1ms) commit transaction
472
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
473
+  (0.1ms) begin transaction
474
+ SQL (0.4ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2017-09-06 20:34:44.383935"], ["updated_at", "2017-09-06 20:34:44.383935"]]
475
+  (0.7ms) commit transaction
476
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
477
+  (0.1ms)  SELECT sql
478
+ FROM sqlite_master
479
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
480
+ UNION ALL
481
+ SELECT sql
482
+ FROM sqlite_temp_master
483
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
484
+ 
485
+  (0.1ms)  SELECT sql
486
+ FROM sqlite_master
487
+ WHERE name='index_enrollments_on_canvas_user_id' AND type='index'
488
+ UNION ALL
489
+ SELECT sql
490
+ FROM sqlite_temp_master
491
+ WHERE name='index_enrollments_on_canvas_user_id' AND type='index'
492
+ 
493
+  (0.1ms)  SELECT sql
494
+ FROM sqlite_master
495
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
496
+ UNION ALL
497
+ SELECT sql
498
+ FROM sqlite_temp_master
499
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
500
+ 
501
+  (0.1ms)  SELECT sql
502
+ FROM sqlite_master
503
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
504
+ UNION ALL
505
+ SELECT sql
506
+ FROM sqlite_temp_master
507
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
508
+ 
509
+  (0.1ms)  SELECT sql
510
+ FROM sqlite_master
511
+ WHERE name='index_sections_on_canvas_course_id' AND type='index'
512
+ UNION ALL
513
+ SELECT sql
514
+ FROM sqlite_temp_master
515
+ WHERE name='index_sections_on_canvas_course_id' AND type='index'
516
+ 
517
+  (0.1ms)  SELECT sql
518
+ FROM sqlite_master
519
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
520
+ UNION ALL
521
+ SELECT sql
522
+ FROM sqlite_temp_master
523
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
524
+ 
525
+  (0.1ms)  SELECT sql
526
+ FROM sqlite_master
527
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
528
+ UNION ALL
529
+ SELECT sql
530
+ FROM sqlite_temp_master
531
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
532
+ 
533
+  (0.1ms)  SELECT sql
534
+ FROM sqlite_master
535
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
536
+ UNION ALL
537
+ SELECT sql
538
+ FROM sqlite_temp_master
539
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
540
+ 
541
+  (0.5ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
542
+  (0.7ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
543
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
544
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
545
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
546
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
547
+  (0.1ms) SELECT sqlite_version(*)
548
+  (7.0ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
549
+  (0.9ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
550
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
551
+ Migrating to CreateCourses (20170831220702)
552
+  (0.1ms) begin transaction
553
+  (0.4ms) CREATE TABLE "courses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_course_id" bigint NOT NULL, "sis_id" varchar, "short_name" varchar, "long_name" varchar, "canvas_account_id" integer, "canvas_term_id" integer, "term_sis_id" integer, "start_date" datetime, "end_date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
554
+  (0.1ms) CREATE UNIQUE INDEX "index_courses_on_canvas_course_id" ON "courses" ("canvas_course_id")
555
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831220702"]]
556
+  (1.4ms) commit transaction
557
+ Migrating to CreateUsers (20170831221129)
558
+  (0.1ms) begin transaction
559
+  (0.5ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_user_id" bigint NOT NULL, "sis_id" varchar, "email" varchar, "first_name" varchar, "last_name" varchar, "status" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
560
+  (0.2ms) CREATE UNIQUE INDEX "index_users_on_canvas_user_id" ON "users" ("canvas_user_id")
561
+ SQL (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831221129"]]
562
+  (1.1ms) commit transaction
563
+ Migrating to CreateEnrollments (20170905192509)
564
+  (0.1ms) begin transaction
565
+  (0.3ms) CREATE TABLE "enrollments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_enrollment_id" bigint NOT NULL, "canvas_course_id" bigint, "course_sis_id" varchar, "canvas_user_id" bigint, "user_sis_id" varchar, "role" varchar, "role_id" integer, "canvas_section_id" bigint, "section_sis_id" varchar, "status" varchar, "base_role_type" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
566
+  (0.1ms) CREATE UNIQUE INDEX "index_enrollments_on_canvas_enrollment_id" ON "enrollments" ("canvas_enrollment_id")
567
+  (0.1ms)  SELECT sql
568
+ FROM sqlite_master
569
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
570
+ UNION ALL
571
+ SELECT sql
572
+ FROM sqlite_temp_master
573
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
574
+ 
575
+  (0.1ms) CREATE INDEX "index_enrollments_on_canvas_course_id" ON "enrollments" ("canvas_course_id")
576
+  (0.1ms)  SELECT sql
577
+ FROM sqlite_master
578
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
579
+ UNION ALL
580
+ SELECT sql
581
+ FROM sqlite_temp_master
582
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
583
+ 
584
+  (0.1ms)  SELECT sql
585
+ FROM sqlite_master
586
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
587
+ UNION ALL
588
+ SELECT sql
589
+ FROM sqlite_temp_master
590
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
591
+ 
592
+  (0.1ms) CREATE INDEX "index_enrollments_on_canvas_user_id" ON "enrollments" ("canvas_user_id")
593
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170905192509"]]
594
+  (1.3ms) commit transaction
595
+ Migrating to CreateTerms (20170906193506)
596
+  (0.1ms) begin transaction
597
+  (0.3ms) CREATE TABLE "terms" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_term_id" integer NOT NULL, "name" varchar, "start_at" datetime, "end_at" datetime, "workflow_state" varchar, "grading_period_group_id" integer, "sis_id" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
598
+  (0.1ms) CREATE UNIQUE INDEX "index_terms_on_canvas_term_id" ON "terms" ("canvas_term_id")
599
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906193506"]]
600
+  (1.3ms) commit transaction
601
+ Migrating to CreateSections (20170906203438)
602
+  (0.1ms) begin transaction
603
+  (0.3ms) CREATE TABLE "sections" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_section_id" bigint NOT NULL, "sis_id" varchar, "canvas_course_id" bigint, "name" varchar, "status" varchar, "start_date" datetime, "end_date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
604
+  (0.1ms) CREATE UNIQUE INDEX "index_sections_on_canvas_section_id" ON "sections" ("canvas_section_id")
605
+  (0.1ms)  SELECT sql
606
+ FROM sqlite_master
607
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
608
+ UNION ALL
609
+ SELECT sql
610
+ FROM sqlite_temp_master
611
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
612
+ 
613
+  (0.1ms) CREATE INDEX "index_sections_on_canvas_course_id" ON "sections" ("canvas_course_id")
614
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906203438"]]
615
+  (1.0ms) commit transaction
616
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
617
+  (0.0ms) begin transaction
618
+ SQL (0.3ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2017-09-07 15:10:06.716782"], ["updated_at", "2017-09-07 15:10:06.716782"]]
619
+  (1.3ms) commit transaction
620
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
621
+  (0.1ms)  SELECT sql
622
+ FROM sqlite_master
623
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
624
+ UNION ALL
625
+ SELECT sql
626
+ FROM sqlite_temp_master
627
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
628
+ 
629
+  (0.1ms)  SELECT sql
630
+ FROM sqlite_master
631
+ WHERE name='index_enrollments_on_canvas_user_id' AND type='index'
632
+ UNION ALL
633
+ SELECT sql
634
+ FROM sqlite_temp_master
635
+ WHERE name='index_enrollments_on_canvas_user_id' AND type='index'
636
+ 
637
+  (0.1ms)  SELECT sql
638
+ FROM sqlite_master
639
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
640
+ UNION ALL
641
+ SELECT sql
642
+ FROM sqlite_temp_master
643
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
644
+ 
645
+  (0.1ms)  SELECT sql
646
+ FROM sqlite_master
647
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
648
+ UNION ALL
649
+ SELECT sql
650
+ FROM sqlite_temp_master
651
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
652
+ 
653
+  (0.1ms)  SELECT sql
654
+ FROM sqlite_master
655
+ WHERE name='index_sections_on_canvas_course_id' AND type='index'
656
+ UNION ALL
657
+ SELECT sql
658
+ FROM sqlite_temp_master
659
+ WHERE name='index_sections_on_canvas_course_id' AND type='index'
660
+ 
661
+  (0.1ms)  SELECT sql
662
+ FROM sqlite_master
663
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
664
+ UNION ALL
665
+ SELECT sql
666
+ FROM sqlite_temp_master
667
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
668
+ 
669
+  (0.1ms)  SELECT sql
670
+ FROM sqlite_master
671
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
672
+ UNION ALL
673
+ SELECT sql
674
+ FROM sqlite_temp_master
675
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
676
+ 
677
+  (0.1ms)  SELECT sql
678
+ FROM sqlite_master
679
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
680
+ UNION ALL
681
+ SELECT sql
682
+ FROM sqlite_temp_master
683
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
684
+ 
685
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
686
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
687
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
688
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
689
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
690
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
691
+  (0.1ms) SELECT sqlite_version(*)
692
+  (6.7ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
693
+  (1.3ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
694
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
695
+ Migrating to CreateCourses (20170831220702)
696
+  (0.0ms) begin transaction
697
+  (0.4ms) CREATE TABLE "courses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_course_id" bigint NOT NULL, "sis_id" varchar, "short_name" varchar, "long_name" varchar, "canvas_account_id" integer, "canvas_term_id" integer, "term_sis_id" integer, "start_date" datetime, "end_date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
698
+  (0.1ms) CREATE UNIQUE INDEX "index_courses_on_canvas_course_id" ON "courses" ("canvas_course_id")
699
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831220702"]]
700
+  (1.0ms) commit transaction
701
+ Migrating to CreateUsers (20170831221129)
702
+  (0.1ms) begin transaction
703
+  (0.4ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_user_id" bigint NOT NULL, "sis_id" varchar, "email" varchar, "first_name" varchar, "last_name" varchar, "status" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
704
+  (0.1ms) CREATE UNIQUE INDEX "index_users_on_canvas_user_id" ON "users" ("canvas_user_id")
705
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170831221129"]]
706
+  (1.3ms) commit transaction
707
+ Migrating to CreateEnrollments (20170905192509)
708
+  (0.1ms) begin transaction
709
+  (0.4ms) CREATE TABLE "enrollments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_enrollment_id" bigint NOT NULL, "canvas_course_id" bigint, "course_sis_id" varchar, "canvas_user_id" bigint, "user_sis_id" varchar, "role" varchar, "role_id" integer, "canvas_section_id" bigint, "section_sis_id" varchar, "status" varchar, "base_role_type" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
710
+  (0.1ms) CREATE UNIQUE INDEX "index_enrollments_on_canvas_enrollment_id" ON "enrollments" ("canvas_enrollment_id")
711
+  (0.1ms)  SELECT sql
712
+ FROM sqlite_master
713
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
714
+ UNION ALL
715
+ SELECT sql
716
+ FROM sqlite_temp_master
717
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
718
+ 
719
+  (0.1ms) CREATE INDEX "index_enrollments_on_canvas_course_id" ON "enrollments" ("canvas_course_id")
720
+  (0.1ms)  SELECT sql
721
+ FROM sqlite_master
722
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
723
+ UNION ALL
724
+ SELECT sql
725
+ FROM sqlite_temp_master
726
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
727
+ 
728
+  (0.1ms)  SELECT sql
729
+ FROM sqlite_master
730
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
731
+ UNION ALL
732
+ SELECT sql
733
+ FROM sqlite_temp_master
734
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
735
+ 
736
+  (0.1ms) CREATE INDEX "index_enrollments_on_canvas_user_id" ON "enrollments" ("canvas_user_id")
737
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170905192509"]]
738
+  (1.1ms) commit transaction
739
+ Migrating to CreateTerms (20170906193506)
740
+  (0.0ms) begin transaction
741
+  (0.3ms) CREATE TABLE "terms" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_term_id" integer NOT NULL, "name" varchar, "start_at" datetime, "end_at" datetime, "workflow_state" varchar, "grading_period_group_id" integer, "sis_id" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
742
+  (0.1ms) CREATE UNIQUE INDEX "index_terms_on_canvas_term_id" ON "terms" ("canvas_term_id")
743
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906193506"]]
744
+  (0.8ms) commit transaction
745
+ Migrating to CreateSections (20170906203438)
746
+  (0.1ms) begin transaction
747
+  (0.3ms) CREATE TABLE "sections" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "canvas_section_id" bigint NOT NULL, "sis_id" varchar, "canvas_course_id" bigint, "name" varchar, "status" varchar, "start_date" datetime, "end_date" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
748
+  (0.1ms) CREATE UNIQUE INDEX "index_sections_on_canvas_section_id" ON "sections" ("canvas_section_id")
749
+  (0.1ms)  SELECT sql
750
+ FROM sqlite_master
751
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
752
+ UNION ALL
753
+ SELECT sql
754
+ FROM sqlite_temp_master
755
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
756
+ 
757
+  (0.1ms) CREATE INDEX "index_sections_on_canvas_course_id" ON "sections" ("canvas_course_id")
758
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20170906203438"]]
759
+  (0.8ms) commit transaction
760
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
761
+  (0.0ms) begin transaction
762
+ SQL (0.3ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2017-09-07 15:11:25.839131"], ["updated_at", "2017-09-07 15:11:25.839131"]]
763
+  (1.4ms) commit transaction
764
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
765
+  (0.1ms)  SELECT sql
766
+ FROM sqlite_master
767
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
768
+ UNION ALL
769
+ SELECT sql
770
+ FROM sqlite_temp_master
771
+ WHERE name='index_courses_on_canvas_course_id' AND type='index'
772
+ 
773
+  (0.1ms)  SELECT sql
774
+ FROM sqlite_master
775
+ WHERE name='index_enrollments_on_canvas_user_id' AND type='index'
776
+ UNION ALL
777
+ SELECT sql
778
+ FROM sqlite_temp_master
779
+ WHERE name='index_enrollments_on_canvas_user_id' AND type='index'
780
+ 
781
+  (0.1ms)  SELECT sql
782
+ FROM sqlite_master
783
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
784
+ UNION ALL
785
+ SELECT sql
786
+ FROM sqlite_temp_master
787
+ WHERE name='index_enrollments_on_canvas_course_id' AND type='index'
788
+ 
789
+  (0.1ms)  SELECT sql
790
+ FROM sqlite_master
791
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
792
+ UNION ALL
793
+ SELECT sql
794
+ FROM sqlite_temp_master
795
+ WHERE name='index_enrollments_on_canvas_enrollment_id' AND type='index'
796
+ 
797
+  (0.1ms)  SELECT sql
798
+ FROM sqlite_master
799
+ WHERE name='index_sections_on_canvas_course_id' AND type='index'
800
+ UNION ALL
801
+ SELECT sql
802
+ FROM sqlite_temp_master
803
+ WHERE name='index_sections_on_canvas_course_id' AND type='index'
804
+ 
805
+  (0.1ms)  SELECT sql
806
+ FROM sqlite_master
807
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
808
+ UNION ALL
809
+ SELECT sql
810
+ FROM sqlite_temp_master
811
+ WHERE name='index_sections_on_canvas_section_id' AND type='index'
812
+ 
813
+  (0.1ms)  SELECT sql
814
+ FROM sqlite_master
815
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
816
+ UNION ALL
817
+ SELECT sql
818
+ FROM sqlite_temp_master
819
+ WHERE name='index_terms_on_canvas_term_id' AND type='index'
820
+ 
821
+  (0.1ms)  SELECT sql
822
+ FROM sqlite_master
823
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
824
+ UNION ALL
825
+ SELECT sql
826
+ FROM sqlite_temp_master
827
+ WHERE name='index_users_on_canvas_user_id' AND type='index'
828
+