canvas_sync 0.17.37 → 0.17.39

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa91c7ca59af567024be0ac8cb9d13ffff059fe7c04fb075101609b3fc78fe4f
4
- data.tar.gz: 8f4e9744ed47825c119e4725c506bf8a55a0dca44d045f49c239e272eed3ea7d
3
+ metadata.gz: 1ef78b16e293747a076116fc6107034f969beef1f60163e356bcaabf623352fd
4
+ data.tar.gz: f77eba73d730eae8270ab64eb99fd8f2785c5a182cafc3152e67fae464a9edb3
5
5
  SHA512:
6
- metadata.gz: 9a6213cb2348019af23683bfa1847e6f0025dd81269fe0950f6a0217acd15565d74096cbcc536bdd42eea8d214f1a5e8a67f8fd6f5188a09aa5442d8f7a26ac7
7
- data.tar.gz: 8a502df328aff5498bf191bc6b3ef73ed91c32b1bcdf2b0f9aa1ec14ce8f0aaf9c908284c8e51da61b2ce51c97df43af0461c297dcb1b0b48252aab8b0240cad
6
+ metadata.gz: 534cfa9023985dcdd388fbd5b6c6c1867137b99ec9c76e2f190a8c5111e977c971aaecad2387feca9418fa36c862bae91488b7bd82023ea5881cc8eff44434a3
7
+ data.tar.gz: 4acc5e317dba064f022125d8aa46eac1ae585c4ef640f1980ed97bfe5fae2f19eee8496684eaea287fa9a3857fae46e240e2daef10f2a7810c1de1e08919cd12
@@ -4,7 +4,6 @@ class CreateUsers < ActiveRecord::Migration[5.1]
4
4
  def change
5
5
  create_table :users do |t|
6
6
  t.bigint :canvas_id, null: false
7
- t.string :sis_id
8
7
  t.string :email
9
8
  t.string :first_name
10
9
  t.string :last_name
@@ -23,7 +23,14 @@ module CanvasSync
23
23
  end
24
24
  end
25
25
 
26
- def self.perform_in_batches(report_file_path, mapping, klass, conflict_target, import_args: {})
26
+ def self.perform_in_batches(report_file_path, raw_mapping, klass, conflict_target, import_args: {})
27
+ mapping = {}.with_indifferent_access
28
+ raw_mapping.each do |db_col, opts|
29
+ next if opts[:deprecated] && !klass.column_names.include?(db_col.to_s)
30
+
31
+ mapping[db_col] = opts
32
+ end
33
+
27
34
  csv_column_names = mapping.values.map { |value| value[:report_column].to_s }
28
35
  database_column_names = mapping.keys
29
36
 
@@ -57,13 +57,13 @@ module CanvasSync
57
57
  day = m[1]
58
58
  skip = m[2] || "1"
59
59
  DateTime.now.send(:"#{day}?") && last_full_sync.end_of_day <= (skip.to_i.weeks.ago.end_of_day)
60
- when opt.match?(%r{^(\d+)\%$})
60
+ when %r{^(\d+)\%$}
61
61
  m = Regexp.last_match
62
62
  rand(100) < m[1].to_i
63
- when opt.match?(%r{^(\d+) ?days$})
63
+ when %r{^(\d+) ?days$}
64
64
  m = Regexp.last_match
65
65
  last_full_sync.end_of_day <= m[1].to_i.days.ago.end_of_day
66
- when opt.match?(%r{^(\d+)$}) # N.days is converted to a string of seconds
66
+ when %r{^(\d+)$} # N.days is converted to a string of seconds
67
67
  m = Regexp.last_match
68
68
  last_full_sync.end_of_day <= m[1].to_i.seconds.ago.end_of_day
69
69
  else
@@ -7,6 +7,7 @@ users:
7
7
  user_id:
8
8
  database_column_name: sis_id
9
9
  type: string
10
+ deprecated: true
10
11
  email:
11
12
  database_column_name: email
12
13
  type: string
@@ -1,3 +1,3 @@
1
1
  module CanvasSync
2
- VERSION = "0.17.37".freeze
2
+ VERSION = "0.17.39".freeze
3
3
  end
@@ -10,9 +10,28 @@ RSpec.describe CanvasSync::Processors::ProvisioningReportProcessor do
10
10
  }.to change { User.count }.by(2)
11
11
  end
12
12
 
13
- it 'uses a User row with a sis_id' do
14
- subject.process('spec/support/fixtures/reports/users.csv', { models: ['users'] }, 1)
15
- expect(User.find_by(canvas_id: 2).sis_id).to eq 'sis_id_2'
13
+ context "with User#sis_id column" do
14
+ before do
15
+ self.use_transactional_tests = false
16
+ ActiveRecord::Migration.add_column :users, :sis_id, :string
17
+ User.reset_column_information
18
+ end
19
+
20
+ after do
21
+ ActiveRecord::Migration.remove_column :users, :sis_id
22
+ User.reset_column_information
23
+ self.use_transactional_tests = true
24
+ end
25
+
26
+ it 'uses keeps support with old installations' do
27
+ subject.process('spec/support/fixtures/reports/users.csv', { models: ['users'] }, 1)
28
+ expect(User.find_by(canvas_id: 2).sis_id).to eq 'sis_id_2'
29
+ end
30
+
31
+ it 'uses a User row with a sis_id' do
32
+ subject.process('spec/support/fixtures/reports/users.csv', { models: ['users'] }, 1)
33
+ expect(User.find_by(canvas_id: 2).sis_id).to eq 'sis_id_2'
34
+ end
16
35
  end
17
36
 
18
37
  it 'processes courses' do
@@ -10,7 +10,6 @@ class CreateUsers < ActiveRecord::Migration[5.1]
10
10
  def change
11
11
  create_table :users do |t|
12
12
  t.bigint :canvas_id, null: false
13
- t.string :sis_id
14
13
  t.string :email
15
14
  t.string :first_name
16
15
  t.string :last_name
@@ -10,7 +10,7 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 2022_07_12_210559) do
13
+ ActiveRecord::Schema.define(version: 2022_09_26_221926) do
14
14
 
15
15
  # These are extensions that must be enabled in order to support this database
16
16
  enable_extension "plpgsql"
@@ -356,7 +356,6 @@ ActiveRecord::Schema.define(version: 2022_07_12_210559) do
356
356
 
357
357
  create_table "users", force: :cascade do |t|
358
358
  t.bigint "canvas_id", null: false
359
- t.string "sis_id"
360
359
  t.string "email"
361
360
  t.string "first_name"
362
361
  t.string "last_name"
@@ -2067,3 +2067,196 @@ Migrating to CreateGradingPeriodGroups (20211001184920)
2067
2067
   (1.5ms) COMMIT
2068
2068
   (0.6ms) SELECT pg_advisory_unlock(1438354376499275445)
2069
2069
   (0.4ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
2070
+  (0.8ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
2071
+  (0.6ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 [["key", "environment"]]
2072
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
2073
+  (0.2ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 [["key", "environment"]]
2074
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
2075
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 [["key", "environment"]]
2076
+  (36.4ms) DROP DATABASE IF EXISTS "canvas_sync_development"
2077
+  (35.5ms) DROP DATABASE IF EXISTS "canvas_sync_test"
2078
+  (162.3ms) CREATE DATABASE "canvas_sync_development" ENCODING = 'unicode'
2079
+  (86.0ms) CREATE DATABASE "canvas_sync_test" ENCODING = 'unicode'
2080
+  (28.7ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)
2081
+  (8.4ms) CREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2082
+  (0.2ms) SELECT pg_try_advisory_lock(1438354376499275445)
2083
+  (0.4ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
2084
+ Migrating to CreateCanvasSyncJobLog (20170915210836)
2085
+  (0.2ms) BEGIN
2086
+  (8.8ms) CREATE TABLE "canvas_sync_job_logs" ("id" serial NOT NULL PRIMARY KEY, "started_at" timestamp, "completed_at" timestamp, "exception" character varying, "backtrace" text, "job_class" character varying, "status" character varying, "metadata" text, "job_arguments" text, "created_at" timestamp, "updated_at" timestamp)
2087
+ ActiveRecord::SchemaMigration Create (0.6ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20170915210836"]]
2088
+  (1.2ms) COMMIT
2089
+ Migrating to AddJobIdToCanvasSyncJobLogs (20180725155729)
2090
+  (0.2ms) BEGIN
2091
+  (0.3ms) ALTER TABLE "canvas_sync_job_logs" ADD "job_id" character varying
2092
+  (4.0ms) CREATE INDEX "index_canvas_sync_job_logs_on_job_id" ON "canvas_sync_job_logs" ("job_id")
2093
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180725155729"]]
2094
+  (1.3ms) COMMIT
2095
+ Migrating to CreateCourses (20190702203621)
2096
+  (0.2ms) BEGIN
2097
+  (9.3ms) CREATE TABLE "courses" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "sis_id" character varying, "course_code" character varying, "name" character varying, "workflow_state" character varying, "canvas_account_id" integer, "canvas_term_id" integer, "start_at" timestamp, "end_at" timestamp, "grading_standard_id" bigint, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2098
+  (4.2ms) CREATE UNIQUE INDEX "index_courses_on_canvas_id" ON "courses" ("canvas_id")
2099
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190702203621"]]
2100
+  (1.4ms) COMMIT
2101
+ Migrating to CreateAccounts (20190702203622)
2102
+  (0.2ms) BEGIN
2103
+  (8.0ms) CREATE TABLE "accounts" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "sis_id" character varying, "canvas_parent_account_id" bigint, "sis_parent_account_id" character varying, "name" character varying, "workflow_state" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2104
+  (3.7ms) CREATE UNIQUE INDEX "index_accounts_on_canvas_id" ON "accounts" ("canvas_id")
2105
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190702203622"]]
2106
+  (1.2ms) COMMIT
2107
+ Migrating to CreateTerms (20190702203623)
2108
+  (0.2ms) BEGIN
2109
+  (8.7ms) CREATE TABLE "terms" ("id" bigserial primary key, "canvas_id" integer NOT NULL, "name" character varying, "start_at" timestamp, "end_at" timestamp, "workflow_state" character varying, "grading_period_group_id" integer, "sis_id" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2110
+  (4.2ms) CREATE UNIQUE INDEX "index_terms_on_canvas_id" ON "terms" ("canvas_id")
2111
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190702203623"]]
2112
+  (1.2ms) COMMIT
2113
+ Migrating to CreateEnrollments (20190702203624)
2114
+  (0.2ms) BEGIN
2115
+  (8.4ms) CREATE TABLE "enrollments" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "canvas_course_id" bigint, "course_sis_id" character varying, "canvas_user_id" bigint, "user_sis_id" character varying, "role" character varying, "canvas_role_id" integer, "canvas_section_id" bigint, "workflow_state" character varying, "base_role_type" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2116
+  (3.7ms) CREATE UNIQUE INDEX "index_enrollments_on_canvas_id" ON "enrollments" ("canvas_id")
2117
+  (4.1ms) CREATE INDEX "index_enrollments_on_canvas_course_id" ON "enrollments" ("canvas_course_id")
2118
+  (3.8ms) CREATE INDEX "index_enrollments_on_canvas_user_id" ON "enrollments" ("canvas_user_id")
2119
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190702203624"]]
2120
+  (1.2ms) COMMIT
2121
+ Migrating to CreateSections (20190702203625)
2122
+  (0.2ms) BEGIN
2123
+  (8.6ms) CREATE TABLE "sections" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "sis_id" character varying, "canvas_course_id" bigint, "canvas_nonxlist_course_id" bigint, "name" character varying, "workflow_state" character varying, "start_at" timestamp, "end_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2124
+  (3.9ms) CREATE UNIQUE INDEX "index_sections_on_canvas_id" ON "sections" ("canvas_id")
2125
+  (4.3ms) CREATE INDEX "index_sections_on_canvas_course_id" ON "sections" ("canvas_course_id")
2126
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190702203625"]]
2127
+  (1.3ms) COMMIT
2128
+ Migrating to CreateAssignments (20190702203626)
2129
+  (0.2ms) BEGIN
2130
+  (9.5ms) CREATE TABLE "assignments" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "title" character varying, "description" text, "due_at" timestamp, "unlock_at" timestamp, "lock_at" timestamp, "points_possible" float, "min_score" float, "max_score" float, "mastery_score" float, "grading_type" character varying, "submission_types" character varying, "workflow_state" character varying, "canvas_context_id" integer, "canvas_context_type" character varying, "canvas_assignment_group_id" integer, "canvas_grading_scheme_id" integer, "canvas_grading_standard_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2131
+  (3.6ms) CREATE UNIQUE INDEX "index_assignments_on_canvas_id" ON "assignments" ("canvas_id")
2132
+  (3.8ms) CREATE INDEX "index_assignments_on_canvas_context_id_and_canvas_context_type" ON "assignments" ("canvas_context_id", "canvas_context_type")
2133
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190702203626"]]
2134
+  (1.4ms) COMMIT
2135
+ Migrating to CreateSubmissions (20190702203627)
2136
+  (0.2ms) BEGIN
2137
+  (8.5ms) CREATE TABLE "submissions" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "canvas_course_id" bigint, "canvas_assignment_id" bigint, "canvas_user_id" bigint, "submitted_at" timestamp, "due_at" timestamp, "graded_at" timestamp, "score" float, "points_possible" float, "excused" boolean, "workflow_state" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2138
+  (3.8ms) CREATE UNIQUE INDEX "index_submissions_on_canvas_id" ON "submissions" ("canvas_id")
2139
+  (4.1ms) CREATE INDEX "index_submissions_on_canvas_assignment_id" ON "submissions" ("canvas_assignment_id")
2140
+  (3.8ms) CREATE INDEX "index_submissions_on_canvas_course_id" ON "submissions" ("canvas_course_id")
2141
+  (4.1ms) CREATE INDEX "index_submissions_on_canvas_user_id" ON "submissions" ("canvas_user_id")
2142
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190702203627"]]
2143
+  (1.3ms) COMMIT
2144
+ Migrating to CreateAssignmentGroups (20190702203630)
2145
+  (0.2ms) BEGIN
2146
+  (8.0ms) CREATE TABLE "assignment_groups" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "canvas_course_id" bigint, "name" character varying, "rules" text, "position" integer, "group_weight" float, "workflow_state" character varying, "canvas_created_at" timestamp, "canvas_updated_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2147
+  (3.7ms) CREATE UNIQUE INDEX "index_assignment_groups_on_canvas_id" ON "assignment_groups" ("canvas_id")
2148
+  (4.2ms) CREATE INDEX "index_assignment_groups_on_canvas_course_id" ON "assignment_groups" ("canvas_course_id")
2149
+ ActiveRecord::SchemaMigration Create (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190702203630"]]
2150
+  (1.5ms) COMMIT
2151
+ Migrating to CreateContextModules (20190702203631)
2152
+  (0.4ms) BEGIN
2153
+  (10.2ms) CREATE TABLE "context_modules" ("id" bigserial primary key, "canvas_id" bigint, "canvas_context_id" bigint, "canvas_context_type" character varying, "position" integer, "name" character varying, "workflow_state" character varying, "deleted_at" timestamp, "unlock_at" timestamp, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2154
+  (4.0ms) CREATE UNIQUE INDEX "index_context_modules_on_canvas_id" ON "context_modules" ("canvas_id")
2155
+  (4.1ms) CREATE INDEX "index_context_modules_on_context" ON "context_modules" ("canvas_context_id", "canvas_context_type")
2156
+ ActiveRecord::SchemaMigration Create (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190702203631"]]
2157
+  (1.5ms) COMMIT
2158
+ Migrating to CreateContextModuleItems (20190702203632)
2159
+  (0.2ms) BEGIN
2160
+  (7.4ms) CREATE TABLE "context_module_items" ("id" bigserial primary key, "canvas_id" bigint, "canvas_context_module_id" bigint, "position" integer, "canvas_content_id" bigint, "canvas_content_type" character varying, "canvas_assignment_id" bigint, "workflow_state" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2161
+  (4.0ms) CREATE UNIQUE INDEX "index_context_module_items_on_canvas_id" ON "context_module_items" ("canvas_id")
2162
+  (4.0ms) CREATE INDEX "index_context_module_items_on_canvas_context_module_id" ON "context_module_items" ("canvas_context_module_id")
2163
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190702203632"]]
2164
+  (1.3ms) COMMIT
2165
+ Migrating to AddForkCountToCanvasSyncJobLogs (20190916154829)
2166
+  (0.2ms) BEGIN
2167
+  (0.3ms) ALTER TABLE "canvas_sync_job_logs" ADD "fork_count" integer
2168
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190916154829"]]
2169
+  (1.1ms) COMMIT
2170
+ Migrating to CreateRoles (20190927204545)
2171
+  (0.1ms) BEGIN
2172
+  (9.2ms) CREATE TABLE "roles" ("id" bigserial primary key, "canvas_id" integer NOT NULL, "label" character varying, "base_role_type" character varying, "canvas_account_id" integer, "workflow_state" character varying, "permissions" json, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2173
+  (3.6ms) CREATE UNIQUE INDEX "index_roles_on_canvas_id" ON "roles" ("canvas_id")
2174
+  (3.6ms) CREATE INDEX "index_roles_on_canvas_account_id" ON "roles" ("canvas_account_id")
2175
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190927204545"]]
2176
+  (1.3ms) COMMIT
2177
+ Migrating to CreateAdmins (20190927204546)
2178
+  (0.2ms) BEGIN
2179
+  (8.2ms) CREATE TABLE "admins" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "role_name" character varying, "canvas_account_id" bigint, "canvas_role_id" bigint, "canvas_user_id" bigint, "workflow_state" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2180
+  (5.4ms) CREATE UNIQUE INDEX "index_admins_on_canvas_id" ON "admins" ("canvas_id")
2181
+  (4.1ms) CREATE INDEX "index_admins_on_canvas_role_id" ON "admins" ("canvas_role_id")
2182
+  (3.7ms) CREATE INDEX "index_admins_on_canvas_user_id" ON "admins" ("canvas_user_id")
2183
+  (3.8ms) CREATE INDEX "index_admins_on_canvas_account_id" ON "admins" ("canvas_account_id")
2184
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20190927204546"]]
2185
+  (1.2ms) COMMIT
2186
+ Migrating to CreateGroups (20200415171620)
2187
+  (0.2ms) BEGIN
2188
+  (8.4ms) CREATE TABLE "groups" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "sis_id" character varying, "canvas_group_category_id" bigint, "group_category_sis_id" character varying, "canvas_account_id" bigint, "canvas_course_id" bigint, "name" character varying, "workflow_state" character varying, "context_id" bigint, "context_type" character varying, "max_membership" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2189
+  (3.7ms) CREATE UNIQUE INDEX "index_groups_on_canvas_id" ON "groups" ("canvas_id")
2190
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200415171620"]]
2191
+  (1.4ms) COMMIT
2192
+ Migrating to CreateGroupMemberships (20200416214248)
2193
+  (0.2ms) BEGIN
2194
+  (8.4ms) CREATE TABLE "group_memberships" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "canvas_user_id" bigint NOT NULL, "canvas_group_id" bigint NOT NULL, "group_sis_id" character varying, "user_sis_id" character varying, "workflow_state" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2195
+  (3.8ms) CREATE UNIQUE INDEX "index_group_memberships_on_canvas_id" ON "group_memberships" ("canvas_id")
2196
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20200416214248"]]
2197
+  (1.2ms) COMMIT
2198
+ Migrating to CreatePseudonyms (20201016181346)
2199
+  (0.1ms) BEGIN
2200
+  (8.1ms) CREATE TABLE "pseudonyms" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "canvas_user_id" bigint, "sis_id" character varying, "unique_id" character varying, "workflow_state" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2201
+  (3.9ms) CREATE UNIQUE INDEX "index_pseudonyms_on_canvas_id" ON "pseudonyms" ("canvas_id")
2202
+  (3.1ms) CREATE INDEX "index_pseudonyms_on_canvas_user_id" ON "pseudonyms" ("canvas_user_id")
2203
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20201016181346"]]
2204
+  (1.3ms) COMMIT
2205
+ Migrating to CreateCanvasSyncSyncBatches (20201018210836)
2206
+  (0.2ms) BEGIN
2207
+  (8.5ms) CREATE TABLE "canvas_sync_sync_batches" ("id" serial NOT NULL PRIMARY KEY, "started_at" timestamp, "completed_at" timestamp, "status" character varying, "created_at" timestamp, "updated_at" timestamp)
2208
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20201018210836"]]
2209
+  (1.4ms) COMMIT
2210
+ Migrating to AddFullSyncToCanvasSyncSyncBatch (20201030210836)
2211
+  (0.2ms) BEGIN
2212
+  (0.5ms) ALTER TABLE "canvas_sync_sync_batches" ADD "full_sync" boolean DEFAULT FALSE
2213
+  (0.4ms) ALTER TABLE "canvas_sync_sync_batches" ADD "batch_genre" character varying
2214
+  (0.4ms) ALTER TABLE "canvas_sync_sync_batches" ADD "batch_bid" character varying
2215
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20201030210836"]]
2216
+  (1.0ms) COMMIT
2217
+ Migrating to CreateUserObservers (20210907233329)
2218
+  (0.1ms) BEGIN
2219
+  (8.6ms) CREATE TABLE "user_observers" ("id" bigserial primary key, "observing_user_id" bigint, "observed_user_id" bigint, "workflow_state" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2220
+  (3.6ms) CREATE UNIQUE INDEX "index_user_observers_on_observed_user_id_and_observing_user_id" ON "user_observers" ("observed_user_id", "observing_user_id")
2221
+  (3.1ms) CREATE INDEX "index_user_observers_on_observing_user_id" ON "user_observers" ("observing_user_id")
2222
+  (4.1ms) CREATE INDEX "index_user_observers_on_observed_user_id" ON "user_observers" ("observed_user_id")
2223
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20210907233329"]]
2224
+  (1.4ms) COMMIT
2225
+ Migrating to CreateGradingPeriods (20210907233330)
2226
+  (0.2ms) BEGIN
2227
+  (8.5ms) CREATE TABLE "grading_periods" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "title" character varying, "weight" float, "start_date" timestamp, "end_date" timestamp, "close_date" timestamp, "canvas_grading_period_group_id" bigint, "workflow_state" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2228
+  (4.2ms) CREATE UNIQUE INDEX "index_grading_periods_on_canvas_id" ON "grading_periods" ("canvas_id")
2229
+  (3.9ms) CREATE INDEX "index_grading_periods_on_canvas_grading_period_group_id" ON "grading_periods" ("canvas_grading_period_group_id")
2230
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20210907233330"]]
2231
+  (1.3ms) COMMIT
2232
+ Migrating to CreateGradingPeriodGroups (20211001184920)
2233
+  (0.2ms) BEGIN
2234
+  (10.0ms) CREATE TABLE "grading_period_groups" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "title" character varying, "weighted" boolean, "display_totals_for_all_grading_periods" boolean, "workflow_state" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2235
+  (4.0ms) CREATE UNIQUE INDEX "index_grading_period_groups_on_canvas_id" ON "grading_period_groups" ("canvas_id")
2236
+ ActiveRecord::SchemaMigration Create (0.6ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20211001184920"]]
2237
+  (1.7ms) COMMIT
2238
+ Migrating to CreateContentMigrations (20220308072643)
2239
+  (0.2ms) BEGIN
2240
+  (8.2ms) CREATE TABLE "content_migrations" ("id" bigserial primary key, "canvas_id" bigint, "canvas_context_id" bigint, "canvas_context_type" character varying, "workflow_state" character varying, "migration_settings" text, "started_at" timestamp, "finished_at" timestamp, "progress" float, "canvas_source_course_id" bigint, "migration_type" character varying, "canvas_child_subscription_id" bigint, "canvas_root_account_id" bigint, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2241
+  (4.0ms) CREATE UNIQUE INDEX "index_content_migrations_on_canvas_id" ON "content_migrations" ("canvas_id")
2242
+ ActiveRecord::SchemaMigration Create (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20220308072643"]]
2243
+  (1.2ms) COMMIT
2244
+ Migrating to CreateLearningOutcomes (20220712210559)
2245
+  (0.2ms) BEGIN
2246
+  (8.4ms) CREATE TABLE "learning_outcomes" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "canvas_context_id" integer, "canvas_context_type" character varying, "name" character varying, "friendly_name" character varying, "workflow_state" character varying, "canvas_created_at" timestamp, "canvas_updated_at" timestamp, "migration_id" character varying, "vendor_guid" character varying, "low_grade" character varying, "high_grade" character varying, "calculation_method" character varying, "calculation_int" character varying, "outcome_import_id" integer, "root_account_ids" integer[] DEFAULT '{}', "description" text, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2247
+  (4.0ms) CREATE UNIQUE INDEX "index_learning_outcomes_on_canvas_id" ON "learning_outcomes" ("canvas_id")
2248
+  (4.4ms) CREATE INDEX "index_learning_outcomes_on_context" ON "learning_outcomes" ("canvas_context_id", "canvas_context_type")
2249
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20220712210559"]]
2250
+  (1.1ms) COMMIT
2251
+ Migrating to CreateUsers (20220926221926)
2252
+  (0.2ms) BEGIN
2253
+  (8.7ms) CREATE TABLE "users" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "email" character varying, "first_name" character varying, "last_name" character varying, "workflow_state" character varying, "login_id" character varying, "name" character varying, "sortable_name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
2254
+  (4.1ms) CREATE UNIQUE INDEX "index_users_on_canvas_id" ON "users" ("canvas_id")
2255
+ ActiveRecord::SchemaMigration Create (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20220926221926"]]
2256
+  (1.4ms) COMMIT
2257
+ ActiveRecord::InternalMetadata Load (0.2ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2 [["key", "environment"], ["LIMIT", 1]]
2258
+  (0.2ms) BEGIN
2259
+ ActiveRecord::InternalMetadata Create (0.3ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key" [["key", "environment"], ["value", "development"], ["created_at", "2022-09-26 22:19:36.350215"], ["updated_at", "2022-09-26 22:19:36.350215"]]
2260
+  (1.2ms) COMMIT
2261
+  (0.2ms) SELECT pg_advisory_unlock(1438354376499275445)
2262
+  (0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC