canvas_sync 0.17.0.beta11 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +14 -0
- data/db/migrate/20201030210836_add_full_sync_to_canvas_sync_sync_batch.rb +7 -0
- data/lib/canvas_sync.rb +40 -7
- data/lib/canvas_sync/importers/bulk_importer.rb +9 -6
- data/lib/canvas_sync/job_batches/chain_builder.rb +22 -2
- data/lib/canvas_sync/jobs/begin_sync_chain_job.rb +51 -3
- data/lib/canvas_sync/jobs/report_starter.rb +1 -0
- data/lib/canvas_sync/processors/assignment_groups_processor.rb +3 -2
- data/lib/canvas_sync/processors/assignments_processor.rb +3 -2
- data/lib/canvas_sync/processors/context_module_items_processor.rb +3 -2
- data/lib/canvas_sync/processors/context_modules_processor.rb +3 -2
- data/lib/canvas_sync/processors/normal_processor.rb +2 -1
- data/lib/canvas_sync/processors/provisioning_report_processor.rb +10 -2
- data/lib/canvas_sync/processors/submissions_processor.rb +3 -2
- data/lib/canvas_sync/version.rb +1 -1
- data/spec/canvas_sync/canvas_sync_spec.rb +10 -10
- data/spec/canvas_sync/jobs/sync_provisioning_report_job_spec.rb +5 -7
- data/spec/dummy/db/schema.rb +4 -1
- data/spec/dummy/log/development.log +474 -0
- data/spec/dummy/log/test.log +14962 -0
- metadata +5 -5
- data/lib/canvas_sync/concerns/role/launch_querying.rb +0 -42
| @@ -8,15 +8,16 @@ module CanvasSync | |
| 8 8 | 
             
                # @param options [Hash]
         | 
| 9 9 | 
             
                class SubmissionsProcessor < ReportProcessor
         | 
| 10 10 | 
             
                  def self.process(report_file_path, _options, report_id)
         | 
| 11 | 
            -
                    new(report_file_path)
         | 
| 11 | 
            +
                    new(report_file_path, _options)
         | 
| 12 12 | 
             
                  end
         | 
| 13 13 |  | 
| 14 | 
            -
                  def initialize(report_file_path)
         | 
| 14 | 
            +
                  def initialize(report_file_path, options)
         | 
| 15 15 | 
             
                    CanvasSync::Importers::BulkImporter.import(
         | 
| 16 16 | 
             
                      report_file_path,
         | 
| 17 17 | 
             
                      mapping[:submissions][:report_columns],
         | 
| 18 18 | 
             
                      Submission,
         | 
| 19 19 | 
             
                      mapping[:submissions][:conflict_target].to_sym,
         | 
| 20 | 
            +
                      import_args: options
         | 
| 20 21 | 
             
                    )
         | 
| 21 22 | 
             
                  end
         | 
| 22 23 | 
             
                end
         | 
    
        data/lib/canvas_sync/version.rb
    CHANGED
    
    
| @@ -42,7 +42,7 @@ RSpec.describe CanvasSync do | |
| 42 42 | 
             
                            ]
         | 
| 43 43 | 
             
                          }]}
         | 
| 44 44 | 
             
                        ]]}
         | 
| 45 | 
            -
                      ], {:legacy_support=>false, :updated_after=>nil, :d=>4}],
         | 
| 45 | 
            +
                      ], {:legacy_support=>false, :updated_after=>nil, :full_sync_every=>nil, :batch_genre=>nil, :d=>4}],
         | 
| 46 46 | 
             
                    })
         | 
| 47 47 | 
             
                  end
         | 
| 48 48 |  | 
| @@ -61,7 +61,7 @@ RSpec.describe CanvasSync do | |
| 61 61 | 
             
                              ]
         | 
| 62 62 | 
             
                            }]}
         | 
| 63 63 | 
             
                          ]]}
         | 
| 64 | 
            -
                        ], {:legacy_support=>false, :updated_after=>nil}]
         | 
| 64 | 
            +
                        ], {:legacy_support=>false, :updated_after=>nil, :full_sync_every=>nil, :batch_genre=>nil}]
         | 
| 65 65 | 
             
                      })
         | 
| 66 66 | 
             
                    end
         | 
| 67 67 | 
             
                  end
         | 
| @@ -80,7 +80,7 @@ RSpec.describe CanvasSync do | |
| 80 80 | 
             
                              ]
         | 
| 81 81 | 
             
                            }]}
         | 
| 82 82 | 
             
                          ]]}
         | 
| 83 | 
            -
                        ], {:legacy_support=>false, :updated_after=>nil}],
         | 
| 83 | 
            +
                        ], {:legacy_support=>false, :updated_after=>nil, :full_sync_every=>nil, :batch_genre=>nil}],
         | 
| 84 84 | 
             
                      })
         | 
| 85 85 | 
             
                    end
         | 
| 86 86 | 
             
                  end
         | 
| @@ -100,7 +100,7 @@ RSpec.describe CanvasSync do | |
| 100 100 | 
             
                              ]
         | 
| 101 101 | 
             
                            }]}
         | 
| 102 102 | 
             
                          ]]}
         | 
| 103 | 
            -
                        ], {:legacy_support=>false, :updated_after=>nil}],
         | 
| 103 | 
            +
                        ], {:legacy_support=>false, :updated_after=>nil, :full_sync_every=>nil, :batch_genre=>nil}],
         | 
| 104 104 | 
             
                      })
         | 
| 105 105 | 
             
                    end
         | 
| 106 106 | 
             
                  end
         | 
| @@ -120,7 +120,7 @@ RSpec.describe CanvasSync do | |
| 120 120 | 
             
                              ]
         | 
| 121 121 | 
             
                            }]}
         | 
| 122 122 | 
             
                          ]]}
         | 
| 123 | 
            -
                        ], {:legacy_support=>false, :updated_after=>nil}],
         | 
| 123 | 
            +
                        ], {:legacy_support=>false, :updated_after=>nil, :full_sync_every=>nil, :batch_genre=>nil}],
         | 
| 124 124 | 
             
                      })
         | 
| 125 125 | 
             
                    end
         | 
| 126 126 | 
             
                  end
         | 
| @@ -140,7 +140,7 @@ RSpec.describe CanvasSync do | |
| 140 140 | 
             
                              ]
         | 
| 141 141 | 
             
                            }]}
         | 
| 142 142 | 
             
                          ]]}
         | 
| 143 | 
            -
                        ], {:legacy_support=>false, :updated_after=>nil}],
         | 
| 143 | 
            +
                        ], {:legacy_support=>false, :updated_after=>nil, :full_sync_every=>nil, :batch_genre=>nil}],
         | 
| 144 144 | 
             
                      })
         | 
| 145 145 | 
             
                    end
         | 
| 146 146 | 
             
                  end
         | 
| @@ -160,7 +160,7 @@ RSpec.describe CanvasSync do | |
| 160 160 | 
             
                              ]
         | 
| 161 161 | 
             
                            }]}
         | 
| 162 162 | 
             
                          ]]}
         | 
| 163 | 
            -
                        ], {:legacy_support=>false, :updated_after=>nil}],
         | 
| 163 | 
            +
                        ], {:legacy_support=>false, :updated_after=>nil, :full_sync_every=>nil, :batch_genre=>nil}],
         | 
| 164 164 | 
             
                      })
         | 
| 165 165 | 
             
                    end
         | 
| 166 166 | 
             
                  end
         | 
| @@ -181,7 +181,7 @@ RSpec.describe CanvasSync do | |
| 181 181 | 
             
                              ]
         | 
| 182 182 | 
             
                            }]}
         | 
| 183 183 | 
             
                          ]]}
         | 
| 184 | 
            -
                        ], {:legacy_support=>false, :updated_after=>nil}],
         | 
| 184 | 
            +
                        ], {:legacy_support=>false, :updated_after=>nil, :full_sync_every=>nil, :batch_genre=>nil}],
         | 
| 185 185 | 
             
                      )
         | 
| 186 186 | 
             
                    end
         | 
| 187 187 | 
             
                  end
         | 
| @@ -202,7 +202,7 @@ RSpec.describe CanvasSync do | |
| 202 202 | 
             
                              ]
         | 
| 203 203 | 
             
                            }]}
         | 
| 204 204 | 
             
                          ]]}
         | 
| 205 | 
            -
                        ], {:legacy_support=>false, :updated_after=>nil}],
         | 
| 205 | 
            +
                        ], {:legacy_support=>false, :updated_after=>nil, :full_sync_every=>nil, :batch_genre=>nil}],
         | 
| 206 206 | 
             
                      )
         | 
| 207 207 | 
             
                    end
         | 
| 208 208 | 
             
                  end
         | 
| @@ -223,7 +223,7 @@ RSpec.describe CanvasSync do | |
| 223 223 | 
             
                              ]
         | 
| 224 224 | 
             
                            }]}
         | 
| 225 225 | 
             
                          ]]}
         | 
| 226 | 
            -
                        ], {:legacy_support=>false, :updated_after=>nil}],
         | 
| 226 | 
            +
                        ], {:legacy_support=>false, :updated_after=>nil, :full_sync_every=>nil, :batch_genre=>nil}],
         | 
| 227 227 | 
             
                      )
         | 
| 228 228 | 
             
                    end
         | 
| 229 229 | 
             
                  end
         | 
| @@ -6,19 +6,18 @@ RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do | |
| 6 6 | 
             
                  let!(:term) { FactoryGirl.create(:term) }
         | 
| 7 7 |  | 
| 8 8 | 
             
                  it 'enqueues a ReportStarter for a provisioning report for the specified models for each term' do
         | 
| 9 | 
            -
             | 
| 9 | 
            +
                      expect_any_instance_of(CanvasSync::Jobs::ReportStarter).to receive(:start_report)
         | 
| 10 10 | 
             
                      .with(
         | 
| 11 | 
            +
                        'self',
         | 
| 11 12 | 
             
                        'proservices_provisioning_csv',
         | 
| 12 13 | 
             
                        {
         | 
| 13 14 | 
             
                          parameters: {
         | 
| 14 15 | 
             
                            include_deleted: true,
         | 
| 15 16 | 
             
                            'users' => true,
         | 
| 16 17 | 
             
                            'courses' => true,
         | 
| 17 | 
            -
                            enrollment_term_id: term.canvas_id
         | 
| 18 | 
            +
                            enrollment_term_id: term.canvas_id,
         | 
| 18 19 | 
             
                          }
         | 
| 19 20 | 
             
                        },
         | 
| 20 | 
            -
                        CanvasSync::Processors::ProvisioningReportProcessor.to_s,
         | 
| 21 | 
            -
                        { models: ['users', 'courses'], term_scope: 'active' }
         | 
| 22 21 | 
             
                      )
         | 
| 23 22 |  | 
| 24 23 | 
             
                    set_batch_context(canvas_term_id: term.canvas_id)
         | 
| @@ -30,8 +29,9 @@ RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do | |
| 30 29 |  | 
| 31 30 | 
             
                context 'a term scope is not specified' do
         | 
| 32 31 | 
             
                  it 'enqueues a single ReportStarter for a provisioning report across all terms for the specified models' do
         | 
| 33 | 
            -
                     | 
| 32 | 
            +
                    expect_any_instance_of(CanvasSync::Jobs::ReportStarter).to receive(:start_report)
         | 
| 34 33 | 
             
                      .with(
         | 
| 34 | 
            +
                        'self',
         | 
| 35 35 | 
             
                        'proservices_provisioning_csv',
         | 
| 36 36 | 
             
                        {
         | 
| 37 37 | 
             
                          parameters: {
         | 
| @@ -40,8 +40,6 @@ RSpec.describe CanvasSync::Jobs::SyncProvisioningReportJob do | |
| 40 40 | 
             
                            'courses' => true,
         | 
| 41 41 | 
             
                          }
         | 
| 42 42 | 
             
                        },
         | 
| 43 | 
            -
                        CanvasSync::Processors::ProvisioningReportProcessor.to_s,
         | 
| 44 | 
            -
                        { models: ['users', 'courses'] }
         | 
| 45 43 | 
             
                      )
         | 
| 46 44 |  | 
| 47 45 | 
             
                    CanvasSync::Jobs::SyncProvisioningReportJob.perform_now(
         | 
    
        data/spec/dummy/db/schema.rb
    CHANGED
    
    | @@ -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:  | 
| 13 | 
            +
            ActiveRecord::Schema.define(version: 2020_10_30_210836) do
         | 
| 14 14 |  | 
| 15 15 | 
             
              # These are extensions that must be enabled in order to support this database
         | 
| 16 16 | 
             
              enable_extension "plpgsql"
         | 
| @@ -105,6 +105,9 @@ ActiveRecord::Schema.define(version: 2020_10_18_210836) do | |
| 105 105 | 
             
                t.string "status"
         | 
| 106 106 | 
             
                t.datetime "created_at"
         | 
| 107 107 | 
             
                t.datetime "updated_at"
         | 
| 108 | 
            +
                t.boolean "full_sync", default: false
         | 
| 109 | 
            +
                t.string "batch_genre"
         | 
| 110 | 
            +
                t.string "batch_bid"
         | 
| 108 111 | 
             
              end
         | 
| 109 112 |  | 
| 110 113 | 
             
              create_table "context_module_items", force: :cascade do |t|
         | 
| @@ -3977,3 +3977,477 @@ Migrating to CreateCanvasSyncSyncBatches (20201018210836) | |
| 3977 3977 | 
             
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 3978 3978 | 
             
              [1m[35m (0.3ms)[0m  [1m[34mSELECT pg_advisory_unlock(1438354376499275445)[0m
         | 
| 3979 3979 | 
             
              [1m[35m (0.3ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 3980 | 
            +
              [1m[35m (3.3ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 3981 | 
            +
              [1m[35m (5.9ms)[0m  [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1[0m  [["key", "environment"]]
         | 
| 3982 | 
            +
              [1m[35m (0.3ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 3983 | 
            +
              [1m[35m (0.2ms)[0m  [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1[0m  [["key", "environment"]]
         | 
| 3984 | 
            +
              [1m[35m (0.2ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 3985 | 
            +
              [1m[35m (0.1ms)[0m  [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1[0m  [["key", "environment"]]
         | 
| 3986 | 
            +
              [1m[35m (325.8ms)[0m  [1m[35mDROP DATABASE IF EXISTS "canvas_sync_development"[0m
         | 
| 3987 | 
            +
              [1m[35m (232.2ms)[0m  [1m[35mDROP DATABASE IF EXISTS "canvas_sync_test"[0m
         | 
| 3988 | 
            +
              [1m[35m (1056.6ms)[0m  [1m[35mCREATE DATABASE "canvas_sync_development" ENCODING = 'unicode'[0m
         | 
| 3989 | 
            +
              [1m[35m (710.5ms)[0m  [1m[35mCREATE DATABASE "canvas_sync_test" ENCODING = 'unicode'[0m
         | 
| 3990 | 
            +
              [1m[35m (70.6ms)[0m  [1m[35mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)[0m
         | 
| 3991 | 
            +
              [1m[35m (46.9ms)[0m  [1m[35mCREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)[0m
         | 
| 3992 | 
            +
              [1m[35m (0.8ms)[0m  [1m[34mSELECT pg_try_advisory_lock(1438354376499275445)[0m
         | 
| 3993 | 
            +
              [1m[35m (1.0ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 3994 | 
            +
            Migrating to CreateCanvasSyncJobLog (20170915210836)
         | 
| 3995 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 3996 | 
            +
              [1m[35m (19.3ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 3997 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.4ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20170915210836"]]
         | 
| 3998 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 3999 | 
            +
            Migrating to AddJobIdToCanvasSyncJobLogs (20180725155729)
         | 
| 4000 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4001 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mALTER TABLE "canvas_sync_job_logs" ADD "job_id" character varying[0m
         | 
| 4002 | 
            +
              [1m[35m (2.7ms)[0m  [1m[35mCREATE  INDEX  "index_canvas_sync_job_logs_on_job_id" ON "canvas_sync_job_logs"  ("job_id")[0m
         | 
| 4003 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20180725155729"]]
         | 
| 4004 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4005 | 
            +
            Migrating to CreateUsers (20190702203620)
         | 
| 4006 | 
            +
              [1m[35m (0.1ms)[0m  [1m[35mBEGIN[0m
         | 
| 4007 | 
            +
              [1m[35m (7.3ms)[0m  [1m[35mCREATE TABLE "users" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "sis_id" character varying, "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)[0m
         | 
| 4008 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_users_on_canvas_id" ON "users"  ("canvas_id")[0m
         | 
| 4009 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203620"]]
         | 
| 4010 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4011 | 
            +
            Migrating to CreateCourses (20190702203621)
         | 
| 4012 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4013 | 
            +
              [1m[35m (5.9ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4014 | 
            +
              [1m[35m (1.2ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_courses_on_canvas_id" ON "courses"  ("canvas_id")[0m
         | 
| 4015 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203621"]]
         | 
| 4016 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4017 | 
            +
            Migrating to CreateAccounts (20190702203622)
         | 
| 4018 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4019 | 
            +
              [1m[35m (5.2ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4020 | 
            +
              [1m[35m (1.3ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_accounts_on_canvas_id" ON "accounts"  ("canvas_id")[0m
         | 
| 4021 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203622"]]
         | 
| 4022 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4023 | 
            +
            Migrating to CreateTerms (20190702203623)
         | 
| 4024 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4025 | 
            +
              [1m[35m (4.9ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4026 | 
            +
              [1m[35m (1.0ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_terms_on_canvas_id" ON "terms"  ("canvas_id")[0m
         | 
| 4027 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203623"]]
         | 
| 4028 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4029 | 
            +
            Migrating to CreateEnrollments (20190702203624)
         | 
| 4030 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4031 | 
            +
              [1m[35m (4.7ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4032 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_enrollments_on_canvas_id" ON "enrollments"  ("canvas_id")[0m
         | 
| 4033 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCREATE  INDEX  "index_enrollments_on_canvas_course_id" ON "enrollments"  ("canvas_course_id")[0m
         | 
| 4034 | 
            +
              [1m[35m (2.2ms)[0m  [1m[35mCREATE  INDEX  "index_enrollments_on_canvas_user_id" ON "enrollments"  ("canvas_user_id")[0m
         | 
| 4035 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.4ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203624"]]
         | 
| 4036 | 
            +
              [1m[35m (0.6ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4037 | 
            +
            Migrating to CreateSections (20190702203625)
         | 
| 4038 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mBEGIN[0m
         | 
| 4039 | 
            +
              [1m[35m (8.5ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4040 | 
            +
              [1m[35m (1.8ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_sections_on_canvas_id" ON "sections"  ("canvas_id")[0m
         | 
| 4041 | 
            +
              [1m[35m (1.5ms)[0m  [1m[35mCREATE  INDEX  "index_sections_on_canvas_course_id" ON "sections"  ("canvas_course_id")[0m
         | 
| 4042 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203625"]]
         | 
| 4043 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4044 | 
            +
            Migrating to CreateAssignments (20190702203626)
         | 
| 4045 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4046 | 
            +
              [1m[35m (7.1ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4047 | 
            +
              [1m[35m (1.2ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_assignments_on_canvas_id" ON "assignments"  ("canvas_id")[0m
         | 
| 4048 | 
            +
              [1m[35m (1.3ms)[0m  [1m[35mCREATE  INDEX  "index_assignments_on_canvas_context_id_and_canvas_context_type" ON "assignments"  ("canvas_context_id", "canvas_context_type")[0m
         | 
| 4049 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203626"]]
         | 
| 4050 | 
            +
              [1m[35m (1.0ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4051 | 
            +
            Migrating to CreateSubmissions (20190702203627)
         | 
| 4052 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4053 | 
            +
              [1m[35m (8.3ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4054 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_submissions_on_canvas_id" ON "submissions"  ("canvas_id")[0m
         | 
| 4055 | 
            +
              [1m[35m (1.4ms)[0m  [1m[35mCREATE  INDEX  "index_submissions_on_canvas_assignment_id" ON "submissions"  ("canvas_assignment_id")[0m
         | 
| 4056 | 
            +
              [1m[35m (1.3ms)[0m  [1m[35mCREATE  INDEX  "index_submissions_on_canvas_course_id" ON "submissions"  ("canvas_course_id")[0m
         | 
| 4057 | 
            +
              [1m[35m (1.2ms)[0m  [1m[35mCREATE  INDEX  "index_submissions_on_canvas_user_id" ON "submissions"  ("canvas_user_id")[0m
         | 
| 4058 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203627"]]
         | 
| 4059 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4060 | 
            +
            Migrating to CreateAssignmentGroups (20190702203630)
         | 
| 4061 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4062 | 
            +
              [1m[35m (6.2ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4063 | 
            +
              [1m[35m (1.3ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_assignment_groups_on_canvas_id" ON "assignment_groups"  ("canvas_id")[0m
         | 
| 4064 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCREATE  INDEX  "index_assignment_groups_on_canvas_course_id" ON "assignment_groups"  ("canvas_course_id")[0m
         | 
| 4065 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203630"]]
         | 
| 4066 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4067 | 
            +
            Migrating to CreateContextModules (20190702203631)
         | 
| 4068 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4069 | 
            +
              [1m[35m (4.8ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4070 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_context_modules_on_canvas_id" ON "context_modules"  ("canvas_id")[0m
         | 
| 4071 | 
            +
              [1m[35m (1.6ms)[0m  [1m[35mCREATE  INDEX  "index_context_modules_on_context" ON "context_modules"  ("canvas_context_id", "canvas_context_type")[0m
         | 
| 4072 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203631"]]
         | 
| 4073 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4074 | 
            +
            Migrating to CreateContextModuleItems (20190702203632)
         | 
| 4075 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4076 | 
            +
              [1m[35m (4.5ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4077 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_context_module_items_on_canvas_id" ON "context_module_items"  ("canvas_id")[0m
         | 
| 4078 | 
            +
              [1m[35m (1.0ms)[0m  [1m[35mCREATE  INDEX  "index_context_module_items_on_canvas_context_module_id" ON "context_module_items"  ("canvas_context_module_id")[0m
         | 
| 4079 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203632"]]
         | 
| 4080 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4081 | 
            +
            Migrating to AddForkCountToCanvasSyncJobLogs (20190916154829)
         | 
| 4082 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4083 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mALTER TABLE "canvas_sync_job_logs" ADD "fork_count" integer[0m
         | 
| 4084 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190916154829"]]
         | 
| 4085 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4086 | 
            +
            Migrating to CreateRoles (20190927204545)
         | 
| 4087 | 
            +
              [1m[35m (0.1ms)[0m  [1m[35mBEGIN[0m
         | 
| 4088 | 
            +
              [1m[35m (5.4ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4089 | 
            +
              [1m[35m (1.8ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_roles_on_canvas_id" ON "roles"  ("canvas_id")[0m
         | 
| 4090 | 
            +
              [1m[35m (1.6ms)[0m  [1m[35mCREATE  INDEX  "index_roles_on_canvas_account_id" ON "roles"  ("canvas_account_id")[0m
         | 
| 4091 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.5ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190927204545"]]
         | 
| 4092 | 
            +
              [1m[35m (0.7ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4093 | 
            +
            Migrating to CreateAdmins (20190927204546)
         | 
| 4094 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mBEGIN[0m
         | 
| 4095 | 
            +
              [1m[35m (5.3ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4096 | 
            +
              [1m[35m (1.9ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_admins_on_canvas_id" ON "admins"  ("canvas_id")[0m
         | 
| 4097 | 
            +
              [1m[35m (1.3ms)[0m  [1m[35mCREATE  INDEX  "index_admins_on_canvas_role_id" ON "admins"  ("canvas_role_id")[0m
         | 
| 4098 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCREATE  INDEX  "index_admins_on_canvas_user_id" ON "admins"  ("canvas_user_id")[0m
         | 
| 4099 | 
            +
              [1m[35m (1.4ms)[0m  [1m[35mCREATE  INDEX  "index_admins_on_canvas_account_id" ON "admins"  ("canvas_account_id")[0m
         | 
| 4100 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190927204546"]]
         | 
| 4101 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4102 | 
            +
            Migrating to CreateGroups (20200415171620)
         | 
| 4103 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4104 | 
            +
              [1m[35m (7.0ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4105 | 
            +
              [1m[35m (1.2ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_groups_on_canvas_id" ON "groups"  ("canvas_id")[0m
         | 
| 4106 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20200415171620"]]
         | 
| 4107 | 
            +
              [1m[35m (5.9ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4108 | 
            +
            Migrating to CreateGroupMemberships (20200416214248)
         | 
| 4109 | 
            +
              [1m[35m (12.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4110 | 
            +
              [1m[35m (13.3ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4111 | 
            +
              [1m[35m (2.2ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_group_memberships_on_canvas_id" ON "group_memberships"  ("canvas_id")[0m
         | 
| 4112 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.4ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20200416214248"]]
         | 
| 4113 | 
            +
              [1m[35m (0.6ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4114 | 
            +
            Migrating to CreatePseudonyms (20201016181346)
         | 
| 4115 | 
            +
              [1m[35m (0.6ms)[0m  [1m[35mBEGIN[0m
         | 
| 4116 | 
            +
              [1m[35m (8.7ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4117 | 
            +
              [1m[35m (1.7ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_pseudonyms_on_canvas_id" ON "pseudonyms"  ("canvas_id")[0m
         | 
| 4118 | 
            +
              [1m[35m (1.9ms)[0m  [1m[35mCREATE  INDEX  "index_pseudonyms_on_canvas_user_id" ON "pseudonyms"  ("canvas_user_id")[0m
         | 
| 4119 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20201016181346"]]
         | 
| 4120 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4121 | 
            +
            Migrating to CreateCanvasSyncSyncBatches (20201018210836)
         | 
| 4122 | 
            +
              [1m[35m (6.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4123 | 
            +
              [1m[35m (20.9ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4124 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.4ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20201018210836"]]
         | 
| 4125 | 
            +
              [1m[35m (0.9ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4126 | 
            +
            Migrating to AddFullSyncToCanvasSyncSyncBatch (20201030210836)
         | 
| 4127 | 
            +
              [1m[35m (10.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4128 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mALTER TABLE "canvas_sync_sync_batches" ADD "full_sync" boolean DEFAULT FALSE[0m
         | 
| 4129 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20201030210836"]]
         | 
| 4130 | 
            +
              [1m[35m (14.9ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4131 | 
            +
              [1m[36mActiveRecord::InternalMetadata Load (0.8ms)[0m  [1m[34mSELECT  "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2[0m  [["key", "environment"], ["LIMIT", 1]]
         | 
| 4132 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4133 | 
            +
              [1m[36mActiveRecord::InternalMetadata Create (0.5ms)[0m  [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key"[0m  [["key", "environment"], ["value", "development"], ["created_at", "2020-10-30 21:45:53.944658"], ["updated_at", "2020-10-30 21:45:53.944658"]]
         | 
| 4134 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4135 | 
            +
              [1m[35m (0.3ms)[0m  [1m[34mSELECT pg_advisory_unlock(1438354376499275445)[0m
         | 
| 4136 | 
            +
              [1m[35m (0.3ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 4137 | 
            +
              [1m[35m (27.6ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 4138 | 
            +
              [1m[35m (13.2ms)[0m  [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1[0m  [["key", "environment"]]
         | 
| 4139 | 
            +
              [1m[35m (0.3ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 4140 | 
            +
              [1m[35m (0.2ms)[0m  [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1[0m  [["key", "environment"]]
         | 
| 4141 | 
            +
              [1m[35m (0.3ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 4142 | 
            +
              [1m[35m (0.3ms)[0m  [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1[0m  [["key", "environment"]]
         | 
| 4143 | 
            +
              [1m[35m (355.0ms)[0m  [1m[35mDROP DATABASE IF EXISTS "canvas_sync_development"[0m
         | 
| 4144 | 
            +
              [1m[35m (244.9ms)[0m  [1m[35mDROP DATABASE IF EXISTS "canvas_sync_test"[0m
         | 
| 4145 | 
            +
              [1m[35m (803.9ms)[0m  [1m[35mCREATE DATABASE "canvas_sync_development" ENCODING = 'unicode'[0m
         | 
| 4146 | 
            +
              [1m[35m (753.2ms)[0m  [1m[35mCREATE DATABASE "canvas_sync_test" ENCODING = 'unicode'[0m
         | 
| 4147 | 
            +
              [1m[35m (287.4ms)[0m  [1m[35mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)[0m
         | 
| 4148 | 
            +
              [1m[35m (51.0ms)[0m  [1m[35mCREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)[0m
         | 
| 4149 | 
            +
              [1m[35m (3.8ms)[0m  [1m[34mSELECT pg_try_advisory_lock(1438354376499275445)[0m
         | 
| 4150 | 
            +
              [1m[35m (22.0ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 4151 | 
            +
            Migrating to CreateCanvasSyncJobLog (20170915210836)
         | 
| 4152 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4153 | 
            +
              [1m[35m (64.9ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4154 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.6ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20170915210836"]]
         | 
| 4155 | 
            +
              [1m[35m (1.0ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4156 | 
            +
            Migrating to AddJobIdToCanvasSyncJobLogs (20180725155729)
         | 
| 4157 | 
            +
              [1m[35m (5.7ms)[0m  [1m[35mBEGIN[0m
         | 
| 4158 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mALTER TABLE "canvas_sync_job_logs" ADD "job_id" character varying[0m
         | 
| 4159 | 
            +
              [1m[35m (1.5ms)[0m  [1m[35mCREATE  INDEX  "index_canvas_sync_job_logs_on_job_id" ON "canvas_sync_job_logs"  ("job_id")[0m
         | 
| 4160 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20180725155729"]]
         | 
| 4161 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4162 | 
            +
            Migrating to CreateUsers (20190702203620)
         | 
| 4163 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4164 | 
            +
              [1m[35m (21.4ms)[0m  [1m[35mCREATE TABLE "users" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "sis_id" character varying, "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)[0m
         | 
| 4165 | 
            +
              [1m[35m (15.2ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_users_on_canvas_id" ON "users"  ("canvas_id")[0m
         | 
| 4166 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203620"]]
         | 
| 4167 | 
            +
              [1m[35m (4.6ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4168 | 
            +
            Migrating to CreateCourses (20190702203621)
         | 
| 4169 | 
            +
              [1m[35m (12.0ms)[0m  [1m[35mBEGIN[0m
         | 
| 4170 | 
            +
              [1m[35m (21.9ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4171 | 
            +
              [1m[35m (7.7ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_courses_on_canvas_id" ON "courses"  ("canvas_id")[0m
         | 
| 4172 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203621"]]
         | 
| 4173 | 
            +
              [1m[35m (11.7ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4174 | 
            +
            Migrating to CreateAccounts (20190702203622)
         | 
| 4175 | 
            +
              [1m[35m (11.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4176 | 
            +
              [1m[35m (17.8ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4177 | 
            +
              [1m[35m (1.4ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_accounts_on_canvas_id" ON "accounts"  ("canvas_id")[0m
         | 
| 4178 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203622"]]
         | 
| 4179 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4180 | 
            +
            Migrating to CreateTerms (20190702203623)
         | 
| 4181 | 
            +
              [1m[35m (5.9ms)[0m  [1m[35mBEGIN[0m
         | 
| 4182 | 
            +
              [1m[35m (22.2ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4183 | 
            +
              [1m[35m (2.1ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_terms_on_canvas_id" ON "terms"  ("canvas_id")[0m
         | 
| 4184 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203623"]]
         | 
| 4185 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4186 | 
            +
            Migrating to CreateEnrollments (20190702203624)
         | 
| 4187 | 
            +
              [1m[35m (5.5ms)[0m  [1m[35mBEGIN[0m
         | 
| 4188 | 
            +
              [1m[35m (32.1ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4189 | 
            +
              [1m[35m (13.9ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_enrollments_on_canvas_id" ON "enrollments"  ("canvas_id")[0m
         | 
| 4190 | 
            +
              [1m[35m (15.8ms)[0m  [1m[35mCREATE  INDEX  "index_enrollments_on_canvas_course_id" ON "enrollments"  ("canvas_course_id")[0m
         | 
| 4191 | 
            +
              [1m[35m (13.4ms)[0m  [1m[35mCREATE  INDEX  "index_enrollments_on_canvas_user_id" ON "enrollments"  ("canvas_user_id")[0m
         | 
| 4192 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203624"]]
         | 
| 4193 | 
            +
              [1m[35m (16.0ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4194 | 
            +
            Migrating to CreateSections (20190702203625)
         | 
| 4195 | 
            +
              [1m[35m (14.9ms)[0m  [1m[35mBEGIN[0m
         | 
| 4196 | 
            +
              [1m[35m (60.4ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4197 | 
            +
              [1m[35m (7.6ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_sections_on_canvas_id" ON "sections"  ("canvas_id")[0m
         | 
| 4198 | 
            +
              [1m[35m (4.0ms)[0m  [1m[35mCREATE  INDEX  "index_sections_on_canvas_course_id" ON "sections"  ("canvas_course_id")[0m
         | 
| 4199 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203625"]]
         | 
| 4200 | 
            +
              [1m[35m (0.7ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4201 | 
            +
            Migrating to CreateAssignments (20190702203626)
         | 
| 4202 | 
            +
              [1m[35m (6.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4203 | 
            +
              [1m[35m (27.6ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4204 | 
            +
              [1m[35m (1.5ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_assignments_on_canvas_id" ON "assignments"  ("canvas_id")[0m
         | 
| 4205 | 
            +
              [1m[35m (3.2ms)[0m  [1m[35mCREATE  INDEX  "index_assignments_on_canvas_context_id_and_canvas_context_type" ON "assignments"  ("canvas_context_id", "canvas_context_type")[0m
         | 
| 4206 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203626"]]
         | 
| 4207 | 
            +
              [1m[35m (0.8ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4208 | 
            +
            Migrating to CreateSubmissions (20190702203627)
         | 
| 4209 | 
            +
              [1m[35m (5.8ms)[0m  [1m[35mBEGIN[0m
         | 
| 4210 | 
            +
              [1m[35m (23.9ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4211 | 
            +
              [1m[35m (1.6ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_submissions_on_canvas_id" ON "submissions"  ("canvas_id")[0m
         | 
| 4212 | 
            +
              [1m[35m (1.7ms)[0m  [1m[35mCREATE  INDEX  "index_submissions_on_canvas_assignment_id" ON "submissions"  ("canvas_assignment_id")[0m
         | 
| 4213 | 
            +
              [1m[35m (1.7ms)[0m  [1m[35mCREATE  INDEX  "index_submissions_on_canvas_course_id" ON "submissions"  ("canvas_course_id")[0m
         | 
| 4214 | 
            +
              [1m[35m (1.8ms)[0m  [1m[35mCREATE  INDEX  "index_submissions_on_canvas_user_id" ON "submissions"  ("canvas_user_id")[0m
         | 
| 4215 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203627"]]
         | 
| 4216 | 
            +
              [1m[35m (0.6ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4217 | 
            +
            Migrating to CreateAssignmentGroups (20190702203630)
         | 
| 4218 | 
            +
              [1m[35m (12.1ms)[0m  [1m[35mBEGIN[0m
         | 
| 4219 | 
            +
              [1m[35m (17.4ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4220 | 
            +
              [1m[35m (1.5ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_assignment_groups_on_canvas_id" ON "assignment_groups"  ("canvas_id")[0m
         | 
| 4221 | 
            +
              [1m[35m (1.7ms)[0m  [1m[35mCREATE  INDEX  "index_assignment_groups_on_canvas_course_id" ON "assignment_groups"  ("canvas_course_id")[0m
         | 
| 4222 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203630"]]
         | 
| 4223 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4224 | 
            +
            Migrating to CreateContextModules (20190702203631)
         | 
| 4225 | 
            +
              [1m[35m (10.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4226 | 
            +
              [1m[35m (19.3ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4227 | 
            +
              [1m[35m (2.0ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_context_modules_on_canvas_id" ON "context_modules"  ("canvas_id")[0m
         | 
| 4228 | 
            +
              [1m[35m (1.3ms)[0m  [1m[35mCREATE  INDEX  "index_context_modules_on_context" ON "context_modules"  ("canvas_context_id", "canvas_context_type")[0m
         | 
| 4229 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203631"]]
         | 
| 4230 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4231 | 
            +
            Migrating to CreateContextModuleItems (20190702203632)
         | 
| 4232 | 
            +
              [1m[35m (6.1ms)[0m  [1m[35mBEGIN[0m
         | 
| 4233 | 
            +
              [1m[35m (34.4ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4234 | 
            +
              [1m[35m (7.4ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_context_module_items_on_canvas_id" ON "context_module_items"  ("canvas_id")[0m
         | 
| 4235 | 
            +
              [1m[35m (20.2ms)[0m  [1m[35mCREATE  INDEX  "index_context_module_items_on_canvas_context_module_id" ON "context_module_items"  ("canvas_context_module_id")[0m
         | 
| 4236 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203632"]]
         | 
| 4237 | 
            +
              [1m[35m (22.1ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4238 | 
            +
            Migrating to AddForkCountToCanvasSyncJobLogs (20190916154829)
         | 
| 4239 | 
            +
              [1m[35m (21.5ms)[0m  [1m[35mBEGIN[0m
         | 
| 4240 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mALTER TABLE "canvas_sync_job_logs" ADD "fork_count" integer[0m
         | 
| 4241 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190916154829"]]
         | 
| 4242 | 
            +
              [1m[35m (15.6ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4243 | 
            +
            Migrating to CreateRoles (20190927204545)
         | 
| 4244 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4245 | 
            +
              [1m[35m (25.8ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4246 | 
            +
              [1m[35m (21.9ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_roles_on_canvas_id" ON "roles"  ("canvas_id")[0m
         | 
| 4247 | 
            +
              [1m[35m (1.5ms)[0m  [1m[35mCREATE  INDEX  "index_roles_on_canvas_account_id" ON "roles"  ("canvas_account_id")[0m
         | 
| 4248 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190927204545"]]
         | 
| 4249 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4250 | 
            +
            Migrating to CreateAdmins (20190927204546)
         | 
| 4251 | 
            +
              [1m[35m (6.7ms)[0m  [1m[35mBEGIN[0m
         | 
| 4252 | 
            +
              [1m[35m (24.3ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4253 | 
            +
              [1m[35m (14.3ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_admins_on_canvas_id" ON "admins"  ("canvas_id")[0m
         | 
| 4254 | 
            +
              [1m[35m (13.4ms)[0m  [1m[35mCREATE  INDEX  "index_admins_on_canvas_role_id" ON "admins"  ("canvas_role_id")[0m
         | 
| 4255 | 
            +
              [1m[35m (4.4ms)[0m  [1m[35mCREATE  INDEX  "index_admins_on_canvas_user_id" ON "admins"  ("canvas_user_id")[0m
         | 
| 4256 | 
            +
              [1m[35m (1.3ms)[0m  [1m[35mCREATE  INDEX  "index_admins_on_canvas_account_id" ON "admins"  ("canvas_account_id")[0m
         | 
| 4257 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.4ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190927204546"]]
         | 
| 4258 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4259 | 
            +
            Migrating to CreateGroups (20200415171620)
         | 
| 4260 | 
            +
              [1m[35m (5.7ms)[0m  [1m[35mBEGIN[0m
         | 
| 4261 | 
            +
              [1m[35m (41.2ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4262 | 
            +
              [1m[35m (5.1ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_groups_on_canvas_id" ON "groups"  ("canvas_id")[0m
         | 
| 4263 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.5ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20200415171620"]]
         | 
| 4264 | 
            +
              [1m[35m (0.6ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4265 | 
            +
            Migrating to CreateGroupMemberships (20200416214248)
         | 
| 4266 | 
            +
              [1m[35m (11.1ms)[0m  [1m[35mBEGIN[0m
         | 
| 4267 | 
            +
              [1m[35m (16.0ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4268 | 
            +
              [1m[35m (1.7ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_group_memberships_on_canvas_id" ON "group_memberships"  ("canvas_id")[0m
         | 
| 4269 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20200416214248"]]
         | 
| 4270 | 
            +
              [1m[35m (0.6ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4271 | 
            +
            Migrating to CreatePseudonyms (20201016181346)
         | 
| 4272 | 
            +
              [1m[35m (10.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4273 | 
            +
              [1m[35m (31.0ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4274 | 
            +
              [1m[35m (14.2ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_pseudonyms_on_canvas_id" ON "pseudonyms"  ("canvas_id")[0m
         | 
| 4275 | 
            +
              [1m[35m (15.9ms)[0m  [1m[35mCREATE  INDEX  "index_pseudonyms_on_canvas_user_id" ON "pseudonyms"  ("canvas_user_id")[0m
         | 
| 4276 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20201016181346"]]
         | 
| 4277 | 
            +
              [1m[35m (14.6ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4278 | 
            +
            Migrating to CreateCanvasSyncSyncBatches (20201018210836)
         | 
| 4279 | 
            +
              [1m[35m (6.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4280 | 
            +
              [1m[35m (22.1ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4281 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20201018210836"]]
         | 
| 4282 | 
            +
              [1m[35m (12.2ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4283 | 
            +
            Migrating to AddFullSyncToCanvasSyncSyncBatch (20201030210836)
         | 
| 4284 | 
            +
              [1m[35m (11.6ms)[0m  [1m[35mBEGIN[0m
         | 
| 4285 | 
            +
              [1m[35m (0.6ms)[0m  [1m[35mALTER TABLE "canvas_sync_sync_batches" ADD "full_sync" boolean DEFAULT FALSE[0m
         | 
| 4286 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mALTER TABLE "canvas_sync_sync_batches" ADD "batch_bid" character varying[0m
         | 
| 4287 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20201030210836"]]
         | 
| 4288 | 
            +
              [1m[35m (6.2ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4289 | 
            +
              [1m[36mActiveRecord::InternalMetadata Load (1.3ms)[0m  [1m[34mSELECT  "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2[0m  [["key", "environment"], ["LIMIT", 1]]
         | 
| 4290 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4291 | 
            +
              [1m[36mActiveRecord::InternalMetadata Create (0.4ms)[0m  [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key"[0m  [["key", "environment"], ["value", "development"], ["created_at", "2020-10-30 22:25:07.136658"], ["updated_at", "2020-10-30 22:25:07.136658"]]
         | 
| 4292 | 
            +
              [1m[35m (6.3ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4293 | 
            +
              [1m[35m (0.4ms)[0m  [1m[34mSELECT pg_advisory_unlock(1438354376499275445)[0m
         | 
| 4294 | 
            +
              [1m[35m (0.6ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 4295 | 
            +
              [1m[35m (2.8ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 4296 | 
            +
              [1m[35m (1.2ms)[0m  [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1[0m  [["key", "environment"]]
         | 
| 4297 | 
            +
              [1m[35m (0.2ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 4298 | 
            +
              [1m[35m (0.2ms)[0m  [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1[0m  [["key", "environment"]]
         | 
| 4299 | 
            +
              [1m[35m (0.2ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 4300 | 
            +
              [1m[35m (0.2ms)[0m  [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1[0m  [["key", "environment"]]
         | 
| 4301 | 
            +
              [1m[35m (381.8ms)[0m  [1m[35mDROP DATABASE IF EXISTS "canvas_sync_development"[0m
         | 
| 4302 | 
            +
              [1m[35m (352.4ms)[0m  [1m[35mDROP DATABASE IF EXISTS "canvas_sync_test"[0m
         | 
| 4303 | 
            +
              [1m[35m (1221.3ms)[0m  [1m[35mCREATE DATABASE "canvas_sync_development" ENCODING = 'unicode'[0m
         | 
| 4304 | 
            +
              [1m[35m (630.6ms)[0m  [1m[35mCREATE DATABASE "canvas_sync_test" ENCODING = 'unicode'[0m
         | 
| 4305 | 
            +
              [1m[35m (145.6ms)[0m  [1m[35mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL PRIMARY KEY)[0m
         | 
| 4306 | 
            +
              [1m[35m (24.2ms)[0m  [1m[35mCREATE TABLE "ar_internal_metadata" ("key" character varying NOT NULL PRIMARY KEY, "value" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)[0m
         | 
| 4307 | 
            +
              [1m[35m (0.3ms)[0m  [1m[34mSELECT pg_try_advisory_lock(1438354376499275445)[0m
         | 
| 4308 | 
            +
              [1m[35m (1.0ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         | 
| 4309 | 
            +
            Migrating to CreateCanvasSyncJobLog (20170915210836)
         | 
| 4310 | 
            +
              [1m[35m (0.1ms)[0m  [1m[35mBEGIN[0m
         | 
| 4311 | 
            +
              [1m[35m (54.9ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4312 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20170915210836"]]
         | 
| 4313 | 
            +
              [1m[35m (1.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4314 | 
            +
            Migrating to AddJobIdToCanvasSyncJobLogs (20180725155729)
         | 
| 4315 | 
            +
              [1m[35m (6.0ms)[0m  [1m[35mBEGIN[0m
         | 
| 4316 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mALTER TABLE "canvas_sync_job_logs" ADD "job_id" character varying[0m
         | 
| 4317 | 
            +
              [1m[35m (2.8ms)[0m  [1m[35mCREATE  INDEX  "index_canvas_sync_job_logs_on_job_id" ON "canvas_sync_job_logs"  ("job_id")[0m
         | 
| 4318 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.4ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20180725155729"]]
         | 
| 4319 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4320 | 
            +
            Migrating to CreateUsers (20190702203620)
         | 
| 4321 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mBEGIN[0m
         | 
| 4322 | 
            +
              [1m[35m (26.6ms)[0m  [1m[35mCREATE TABLE "users" ("id" bigserial primary key, "canvas_id" bigint NOT NULL, "sis_id" character varying, "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)[0m
         | 
| 4323 | 
            +
              [1m[35m (2.5ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_users_on_canvas_id" ON "users"  ("canvas_id")[0m
         | 
| 4324 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203620"]]
         | 
| 4325 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4326 | 
            +
            Migrating to CreateCourses (20190702203621)
         | 
| 4327 | 
            +
              [1m[35m (6.0ms)[0m  [1m[35mBEGIN[0m
         | 
| 4328 | 
            +
              [1m[35m (23.5ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4329 | 
            +
              [1m[35m (1.4ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_courses_on_canvas_id" ON "courses"  ("canvas_id")[0m
         | 
| 4330 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203621"]]
         | 
| 4331 | 
            +
              [1m[35m (0.6ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4332 | 
            +
            Migrating to CreateAccounts (20190702203622)
         | 
| 4333 | 
            +
              [1m[35m (6.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4334 | 
            +
              [1m[35m (37.8ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4335 | 
            +
              [1m[35m (1.4ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_accounts_on_canvas_id" ON "accounts"  ("canvas_id")[0m
         | 
| 4336 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203622"]]
         | 
| 4337 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4338 | 
            +
            Migrating to CreateTerms (20190702203623)
         | 
| 4339 | 
            +
              [1m[35m (15.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4340 | 
            +
              [1m[35m (13.1ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4341 | 
            +
              [1m[35m (1.1ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_terms_on_canvas_id" ON "terms"  ("canvas_id")[0m
         | 
| 4342 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203623"]]
         | 
| 4343 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4344 | 
            +
            Migrating to CreateEnrollments (20190702203624)
         | 
| 4345 | 
            +
              [1m[35m (16.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4346 | 
            +
              [1m[35m (12.1ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4347 | 
            +
              [1m[35m (1.4ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_enrollments_on_canvas_id" ON "enrollments"  ("canvas_id")[0m
         | 
| 4348 | 
            +
              [1m[35m (7.1ms)[0m  [1m[35mCREATE  INDEX  "index_enrollments_on_canvas_course_id" ON "enrollments"  ("canvas_course_id")[0m
         | 
| 4349 | 
            +
              [1m[35m (18.1ms)[0m  [1m[35mCREATE  INDEX  "index_enrollments_on_canvas_user_id" ON "enrollments"  ("canvas_user_id")[0m
         | 
| 4350 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203624"]]
         | 
| 4351 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4352 | 
            +
            Migrating to CreateSections (20190702203625)
         | 
| 4353 | 
            +
              [1m[35m (11.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4354 | 
            +
              [1m[35m (40.5ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4355 | 
            +
              [1m[35m (1.5ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_sections_on_canvas_id" ON "sections"  ("canvas_id")[0m
         | 
| 4356 | 
            +
              [1m[35m (1.5ms)[0m  [1m[35mCREATE  INDEX  "index_sections_on_canvas_course_id" ON "sections"  ("canvas_course_id")[0m
         | 
| 4357 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.4ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203625"]]
         | 
| 4358 | 
            +
              [1m[35m (0.7ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4359 | 
            +
            Migrating to CreateAssignments (20190702203626)
         | 
| 4360 | 
            +
              [1m[35m (5.6ms)[0m  [1m[35mBEGIN[0m
         | 
| 4361 | 
            +
              [1m[35m (22.6ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4362 | 
            +
              [1m[35m (1.5ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_assignments_on_canvas_id" ON "assignments"  ("canvas_id")[0m
         | 
| 4363 | 
            +
              [1m[35m (7.0ms)[0m  [1m[35mCREATE  INDEX  "index_assignments_on_canvas_context_id_and_canvas_context_type" ON "assignments"  ("canvas_context_id", "canvas_context_type")[0m
         | 
| 4364 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.4ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203626"]]
         | 
| 4365 | 
            +
              [1m[35m (27.8ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4366 | 
            +
            Migrating to CreateSubmissions (20190702203627)
         | 
| 4367 | 
            +
              [1m[35m (11.1ms)[0m  [1m[35mBEGIN[0m
         | 
| 4368 | 
            +
              [1m[35m (39.2ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4369 | 
            +
              [1m[35m (18.6ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_submissions_on_canvas_id" ON "submissions"  ("canvas_id")[0m
         | 
| 4370 | 
            +
              [1m[35m (7.9ms)[0m  [1m[35mCREATE  INDEX  "index_submissions_on_canvas_assignment_id" ON "submissions"  ("canvas_assignment_id")[0m
         | 
| 4371 | 
            +
              [1m[35m (9.9ms)[0m  [1m[35mCREATE  INDEX  "index_submissions_on_canvas_course_id" ON "submissions"  ("canvas_course_id")[0m
         | 
| 4372 | 
            +
              [1m[35m (12.8ms)[0m  [1m[35mCREATE  INDEX  "index_submissions_on_canvas_user_id" ON "submissions"  ("canvas_user_id")[0m
         | 
| 4373 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.4ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203627"]]
         | 
| 4374 | 
            +
              [1m[35m (21.7ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4375 | 
            +
            Migrating to CreateAssignmentGroups (20190702203630)
         | 
| 4376 | 
            +
              [1m[35m (14.4ms)[0m  [1m[35mBEGIN[0m
         | 
| 4377 | 
            +
              [1m[35m (80.7ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4378 | 
            +
              [1m[35m (7.9ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_assignment_groups_on_canvas_id" ON "assignment_groups"  ("canvas_id")[0m
         | 
| 4379 | 
            +
              [1m[35m (7.2ms)[0m  [1m[35mCREATE  INDEX  "index_assignment_groups_on_canvas_course_id" ON "assignment_groups"  ("canvas_course_id")[0m
         | 
| 4380 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203630"]]
         | 
| 4381 | 
            +
              [1m[35m (6.1ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4382 | 
            +
            Migrating to CreateContextModules (20190702203631)
         | 
| 4383 | 
            +
              [1m[35m (6.0ms)[0m  [1m[35mBEGIN[0m
         | 
| 4384 | 
            +
              [1m[35m (22.7ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4385 | 
            +
              [1m[35m (9.6ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_context_modules_on_canvas_id" ON "context_modules"  ("canvas_id")[0m
         | 
| 4386 | 
            +
              [1m[35m (13.6ms)[0m  [1m[35mCREATE  INDEX  "index_context_modules_on_context" ON "context_modules"  ("canvas_context_id", "canvas_context_type")[0m
         | 
| 4387 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203631"]]
         | 
| 4388 | 
            +
              [1m[35m (11.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4389 | 
            +
            Migrating to CreateContextModuleItems (20190702203632)
         | 
| 4390 | 
            +
              [1m[35m (15.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4391 | 
            +
              [1m[35m (32.0ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4392 | 
            +
              [1m[35m (32.6ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_context_module_items_on_canvas_id" ON "context_module_items"  ("canvas_id")[0m
         | 
| 4393 | 
            +
              [1m[35m (12.9ms)[0m  [1m[35mCREATE  INDEX  "index_context_module_items_on_canvas_context_module_id" ON "context_module_items"  ("canvas_context_module_id")[0m
         | 
| 4394 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190702203632"]]
         | 
| 4395 | 
            +
              [1m[35m (6.7ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4396 | 
            +
            Migrating to AddForkCountToCanvasSyncJobLogs (20190916154829)
         | 
| 4397 | 
            +
              [1m[35m (21.7ms)[0m  [1m[35mBEGIN[0m
         | 
| 4398 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mALTER TABLE "canvas_sync_job_logs" ADD "fork_count" integer[0m
         | 
| 4399 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190916154829"]]
         | 
| 4400 | 
            +
              [1m[35m (13.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4401 | 
            +
            Migrating to CreateRoles (20190927204545)
         | 
| 4402 | 
            +
              [1m[35m (0.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4403 | 
            +
              [1m[35m (36.2ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4404 | 
            +
              [1m[35m (14.9ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_roles_on_canvas_id" ON "roles"  ("canvas_id")[0m
         | 
| 4405 | 
            +
              [1m[35m (2.0ms)[0m  [1m[35mCREATE  INDEX  "index_roles_on_canvas_account_id" ON "roles"  ("canvas_account_id")[0m
         | 
| 4406 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.4ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190927204545"]]
         | 
| 4407 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4408 | 
            +
            Migrating to CreateAdmins (20190927204546)
         | 
| 4409 | 
            +
              [1m[35m (5.6ms)[0m  [1m[35mBEGIN[0m
         | 
| 4410 | 
            +
              [1m[35m (43.8ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4411 | 
            +
              [1m[35m (21.2ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_admins_on_canvas_id" ON "admins"  ("canvas_id")[0m
         | 
| 4412 | 
            +
              [1m[35m (31.8ms)[0m  [1m[35mCREATE  INDEX  "index_admins_on_canvas_role_id" ON "admins"  ("canvas_role_id")[0m
         | 
| 4413 | 
            +
              [1m[35m (1.4ms)[0m  [1m[35mCREATE  INDEX  "index_admins_on_canvas_user_id" ON "admins"  ("canvas_user_id")[0m
         | 
| 4414 | 
            +
              [1m[35m (1.8ms)[0m  [1m[35mCREATE  INDEX  "index_admins_on_canvas_account_id" ON "admins"  ("canvas_account_id")[0m
         | 
| 4415 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20190927204546"]]
         | 
| 4416 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4417 | 
            +
            Migrating to CreateGroups (20200415171620)
         | 
| 4418 | 
            +
              [1m[35m (5.9ms)[0m  [1m[35mBEGIN[0m
         | 
| 4419 | 
            +
              [1m[35m (54.4ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4420 | 
            +
              [1m[35m (13.4ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_groups_on_canvas_id" ON "groups"  ("canvas_id")[0m
         | 
| 4421 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20200415171620"]]
         | 
| 4422 | 
            +
              [1m[35m (28.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4423 | 
            +
            Migrating to CreateGroupMemberships (20200416214248)
         | 
| 4424 | 
            +
              [1m[35m (6.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4425 | 
            +
              [1m[35m (35.1ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4426 | 
            +
              [1m[35m (17.4ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_group_memberships_on_canvas_id" ON "group_memberships"  ("canvas_id")[0m
         | 
| 4427 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (8.5ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20200416214248"]]
         | 
| 4428 | 
            +
              [1m[35m (19.1ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4429 | 
            +
            Migrating to CreatePseudonyms (20201016181346)
         | 
| 4430 | 
            +
              [1m[35m (13.3ms)[0m  [1m[35mBEGIN[0m
         | 
| 4431 | 
            +
              [1m[35m (54.2ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4432 | 
            +
              [1m[35m (14.9ms)[0m  [1m[35mCREATE UNIQUE INDEX  "index_pseudonyms_on_canvas_id" ON "pseudonyms"  ("canvas_id")[0m
         | 
| 4433 | 
            +
              [1m[35m (13.0ms)[0m  [1m[35mCREATE  INDEX  "index_pseudonyms_on_canvas_user_id" ON "pseudonyms"  ("canvas_user_id")[0m
         | 
| 4434 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.5ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20201016181346"]]
         | 
| 4435 | 
            +
              [1m[35m (11.4ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4436 | 
            +
            Migrating to CreateCanvasSyncSyncBatches (20201018210836)
         | 
| 4437 | 
            +
              [1m[35m (15.2ms)[0m  [1m[35mBEGIN[0m
         | 
| 4438 | 
            +
              [1m[35m (61.8ms)[0m  [1m[35mCREATE 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)[0m
         | 
| 4439 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20201018210836"]]
         | 
| 4440 | 
            +
              [1m[35m (4.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4441 | 
            +
            Migrating to AddFullSyncToCanvasSyncSyncBatch (20201030210836)
         | 
| 4442 | 
            +
              [1m[35m (36.7ms)[0m  [1m[35mBEGIN[0m
         | 
| 4443 | 
            +
              [1m[35m (0.4ms)[0m  [1m[35mALTER TABLE "canvas_sync_sync_batches" ADD "full_sync" boolean DEFAULT FALSE[0m
         | 
| 4444 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mALTER TABLE "canvas_sync_sync_batches" ADD "batch_genre" character varying[0m
         | 
| 4445 | 
            +
              [1m[35m (0.2ms)[0m  [1m[35mALTER TABLE "canvas_sync_sync_batches" ADD "batch_bid" character varying[0m
         | 
| 4446 | 
            +
              [1m[36mActiveRecord::SchemaMigration Create (0.2ms)[0m  [1m[32mINSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"[0m  [["version", "20201030210836"]]
         | 
| 4447 | 
            +
              [1m[35m (24.5ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4448 | 
            +
              [1m[36mActiveRecord::InternalMetadata Load (0.9ms)[0m  [1m[34mSELECT  "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 LIMIT $2[0m  [["key", "environment"], ["LIMIT", 1]]
         | 
| 4449 | 
            +
              [1m[35m (0.5ms)[0m  [1m[35mBEGIN[0m
         | 
| 4450 | 
            +
              [1m[36mActiveRecord::InternalMetadata Create (0.7ms)[0m  [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "key"[0m  [["key", "environment"], ["value", "development"], ["created_at", "2020-10-30 22:38:37.668477"], ["updated_at", "2020-10-30 22:38:37.668477"]]
         | 
| 4451 | 
            +
              [1m[35m (26.0ms)[0m  [1m[35mCOMMIT[0m
         | 
| 4452 | 
            +
              [1m[35m (0.4ms)[0m  [1m[34mSELECT pg_advisory_unlock(1438354376499275445)[0m
         | 
| 4453 | 
            +
              [1m[35m (0.3ms)[0m  [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
         |