canvas_sync 0.1.1

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.
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
+