instructure / canvas-lms

The open LMS by Instructure, Inc.
https://github.com/instructure/canvas-lms/wiki
GNU Affero General Public License v3.0
5.56k stars 2.47k forks source link

DB migration error during update - PG::UniqueViolation: ERROR #1806

Open amg-web opened 3 years ago

amg-web commented 3 years ago

Got error while update Canvas PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_role_overrides_on_context_role_permission"

Steps to reproduce:

bundle config set path 'vendor/bundle' && bundle 2.1.4 install RAILS_ENV=production bundle exec rake db:migrate:predeploy RAILS_ENV=production bundle exec rake canvas:compile_assets RAILS_ENV=production bundle exec rake db:migrate

Expected behavior:

Please help!

Additional notes:

` RAILS_ENV=production bundle exec rake db:migrate /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/soap4r-ruby1.9-2.0.5/lib/soap/mapping/encodedregistry.rb:150: warning: constant ::Fixnum is deprecated /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/soap4r-ruby1.9-2.0.5/lib/soap/mapping/encodedregistry.rb:216: warning: constant ::Fixnum is deprecated default: production == MoreGranularAdminUsersPermissions: migrating ============================== rake aborted! StandardError: An error has occurred, all later migrations canceled:

PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_role_overrides_on_context_role_permission" DETAIL: Key (context_id, context_type, role_id, permission)=(1, Account, 12, allow_course_admin_actions) already exists. : INSERT INTO "public"."role_overrides" ("permission", "enabled", "context_id", "context_type", "created_at", "updated_at", "role_id", "root_account_id") VALUES ('allow_course_admin_actions', FALSE, 1, 'Account', '2021-02-01 17:59:58.948817', '2021-02-01 17:59:58.948817', 12, 1) RETURNING "id" /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:611:in exec_params' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:611:inblock (2 levels) in exec_no_cache' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:48:in block in permit_concurrent_loads' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/concurrency/share_lock.rb:187:inyield_shares' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_loads' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:610:inblock in exec_no_cache' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract_adapter.rb:581:in block (2 levels) in log' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract_adapter.rb:580:inblock in log' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/notifications/instrumenter.rb:23:in instrument' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/sharded_instrumenter.rb:22:ininstrument' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract_adapter.rb:571:in log' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/abstract_adapter.rb:39:inlog' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:609:in exec_no_cache' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:596:inexecute_and_clear' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:81:in exec_query' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:130:inexec_insert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:115:in exec_insert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:162:ininsert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/query_cache.rb:21:in insert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:187:in_insert_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:734:in _create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/counter_cache.rb:184:in_create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/locking/optimistic.rb:70:in _create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/attribute_methods/dirty.rb:140:in_create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:346:in block in _create_record' /home/canv_us/public_html/gems/activesupport-suspend_callbacks/lib/active_support/callbacks/suspension.rb:150:inrun_callbacks' /home/canv_us/public_html/config/initializers/active_record.rb:1582:in block in run_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation.rb:281:inscoping' /home/canv_us/public_html/config/initializers/active_record.rb:1582:in run_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:816:in_run_create_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:346:in _create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/timestamp.rb:102:in_create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:705:in create_or_update' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:342:inblock in create_or_update' /home/canv_us/public_html/gems/activesupport-suspend_callbacks/lib/active_support/callbacks/suspension.rb:184:in run_callbacks' /home/canv_us/public_html/config/initializers/active_record.rb:1582:inblock in run_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation.rb:281:in scoping' /home/canv_us/public_html/config/initializers/active_record.rb:1582:inrun_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:816:in _run_save_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:342:increate_or_update' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:308:in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/validations.rb:52:insave!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:315:in block in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:387:inblock in with_transaction_returning_status' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:267:in block in transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/transaction.rb:239:inblock in within_new_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/transaction.rb:236:in within_new_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:267:intransaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:212:in transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:43:inblock in transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/relation.rb:104:in activate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:38:intransaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:385:in with_transaction_returning_status' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:315:insave!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/suppressor.rb:48:in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:117:inblock in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation.rb:281:in scoping' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:117:insave!' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:45:in block (2 levels) in run' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:39:ineach' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:39:in block in run' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:136:inblock in find_in_batches' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:238:in block in in_batches' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:222:inloop' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:222:in in_batches' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:135:infind_in_batches' /home/canv_us/public_html/config/initializers/active_record.rb:771:in find_in_batches' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:35:inrun' /home/canv_us/public_html/db/migrate/20201216214616_more_granular_admin_users_permissions.rb:26:in up' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:817:inexec_migration' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:798:in block (2 levels) in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:797:inblock in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in with_connection' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/connection_pool_proxy.rb:15:inwith_connection' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:796:in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-3.1.2/lib/switchman_inst_jobs/active_record/migration.rb:16:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:608:in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:977:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1292:in block in execute_migration_in_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1345:inddl_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1291:in execute_migration_in_transaction' /home/canv_us/public_html/config/initializers/active_record.rb:1460:inexecute_migration_in_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1263:in block in migrate_without_lock' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1262:ineach' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1262:in migrate_without_lock' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1210:inblock in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1363:in with_advisory_lock' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1210:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1036:in up' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1011:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/tasks/database_tasks.rb:172:in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/railties/databases.rake:60:inblock (2 levels) in <top (required)>' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:87:in block (6 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:87:ineach' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:87:in block (5 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/database_server.rb:109:inunguard' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:86:in block (4 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/app/models/switchman/shard.rb:152:inwith_each_shard' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:71:in block (3 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/database_server.rb:109:inunguard' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:68:in block (2 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/guard_rail.rb:24:inactivate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-3.1.2/lib/switchman_inst_jobs/guard_rail.rb:8:in activate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:67:inblock in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'

Caused by: ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_role_overrides_on_context_role_permission" DETAIL: Key (context_id, context_type, role_id, permission)=(1, Account, 12, allow_course_admin_actions) already exists. : INSERT INTO "public"."role_overrides" ("permission", "enabled", "context_id", "context_type", "created_at", "updated_at", "role_id", "root_account_id") VALUES ('allow_course_admin_actions', FALSE, 1, 'Account', '2021-02-01 17:59:58.948817', '2021-02-01 17:59:58.948817', 12, 1) RETURNING "id" /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:611:in exec_params' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:611:inblock (2 levels) in exec_no_cache' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:48:in block in permit_concurrent_loads' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/concurrency/share_lock.rb:187:inyield_shares' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_loads' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:610:inblock in exec_no_cache' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract_adapter.rb:581:in block (2 levels) in log' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract_adapter.rb:580:inblock in log' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/notifications/instrumenter.rb:23:in instrument' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/sharded_instrumenter.rb:22:ininstrument' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract_adapter.rb:571:in log' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/abstract_adapter.rb:39:inlog' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:609:in exec_no_cache' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:596:inexecute_and_clear' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:81:in exec_query' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:130:inexec_insert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:115:in exec_insert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:162:ininsert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/query_cache.rb:21:in insert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:187:in_insert_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:734:in _create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/counter_cache.rb:184:in_create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/locking/optimistic.rb:70:in _create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/attribute_methods/dirty.rb:140:in_create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:346:in block in _create_record' /home/canv_us/public_html/gems/activesupport-suspend_callbacks/lib/active_support/callbacks/suspension.rb:150:inrun_callbacks' /home/canv_us/public_html/config/initializers/active_record.rb:1582:in block in run_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation.rb:281:inscoping' /home/canv_us/public_html/config/initializers/active_record.rb:1582:in run_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:816:in_run_create_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:346:in _create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/timestamp.rb:102:in_create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:705:in create_or_update' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:342:inblock in create_or_update' /home/canv_us/public_html/gems/activesupport-suspend_callbacks/lib/active_support/callbacks/suspension.rb:184:in run_callbacks' /home/canv_us/public_html/config/initializers/active_record.rb:1582:inblock in run_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation.rb:281:in scoping' /home/canv_us/public_html/config/initializers/active_record.rb:1582:inrun_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:816:in _run_save_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:342:increate_or_update' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:308:in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/validations.rb:52:insave!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:315:in block in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:387:inblock in with_transaction_returning_status' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:267:in block in transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/transaction.rb:239:inblock in within_new_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/transaction.rb:236:in within_new_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:267:intransaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:212:in transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:43:inblock in transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/relation.rb:104:in activate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:38:intransaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:385:in with_transaction_returning_status' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:315:insave!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/suppressor.rb:48:in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:117:inblock in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation.rb:281:in scoping' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:117:insave!' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:45:in block (2 levels) in run' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:39:ineach' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:39:in block in run' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:136:inblock in find_in_batches' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:238:in block in in_batches' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:222:inloop' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:222:in in_batches' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:135:infind_in_batches' /home/canv_us/public_html/config/initializers/active_record.rb:771:in find_in_batches' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:35:inrun' /home/canv_us/public_html/db/migrate/20201216214616_more_granular_admin_users_permissions.rb:26:in up' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:817:inexec_migration' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:798:in block (2 levels) in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:797:inblock in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in with_connection' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/connection_pool_proxy.rb:15:inwith_connection' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:796:in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-3.1.2/lib/switchman_inst_jobs/active_record/migration.rb:16:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:608:in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:977:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1292:in block in execute_migration_in_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1345:inddl_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1291:in execute_migration_in_transaction' /home/canv_us/public_html/config/initializers/active_record.rb:1460:inexecute_migration_in_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1263:in block in migrate_without_lock' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1262:ineach' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1262:in migrate_without_lock' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1210:inblock in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1363:in with_advisory_lock' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1210:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1036:in up' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1011:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/tasks/database_tasks.rb:172:in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/railties/databases.rake:60:inblock (2 levels) in <top (required)>' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:87:in block (6 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:87:ineach' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:87:in block (5 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/database_server.rb:109:inunguard' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:86:in block (4 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/app/models/switchman/shard.rb:152:inwith_each_shard' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:71:in block (3 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/database_server.rb:109:inunguard' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:68:in block (2 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/guard_rail.rb:24:inactivate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-3.1.2/lib/switchman_inst_jobs/guard_rail.rb:8:in activate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:67:inblock in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'

Caused by: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_role_overrides_on_context_role_permission" DETAIL: Key (context_id, context_type, role_id, permission)=(1, Account, 12, allow_course_admin_actions) already exists. /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:611:in exec_params' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:611:inblock (2 levels) in exec_no_cache' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:48:in block in permit_concurrent_loads' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/concurrency/share_lock.rb:187:inyield_shares' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:47:in permit_concurrent_loads' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:610:inblock in exec_no_cache' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract_adapter.rb:581:in block (2 levels) in log' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract_adapter.rb:580:inblock in log' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/notifications/instrumenter.rb:23:in instrument' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/sharded_instrumenter.rb:22:ininstrument' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract_adapter.rb:571:in log' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/abstract_adapter.rb:39:inlog' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:609:in exec_no_cache' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql_adapter.rb:596:inexecute_and_clear' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:81:in exec_query' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:130:inexec_insert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:115:in exec_insert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:162:ininsert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/query_cache.rb:21:in insert' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:187:in_insert_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:734:in _create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/counter_cache.rb:184:in_create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/locking/optimistic.rb:70:in _create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/attribute_methods/dirty.rb:140:in_create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:346:in block in _create_record' /home/canv_us/public_html/gems/activesupport-suspend_callbacks/lib/active_support/callbacks/suspension.rb:150:inrun_callbacks' /home/canv_us/public_html/config/initializers/active_record.rb:1582:in block in run_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation.rb:281:inscoping' /home/canv_us/public_html/config/initializers/active_record.rb:1582:in run_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:816:in_run_create_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:346:in _create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/timestamp.rb:102:in_create_record' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:705:in create_or_update' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:342:inblock in create_or_update' /home/canv_us/public_html/gems/activesupport-suspend_callbacks/lib/active_support/callbacks/suspension.rb:184:in run_callbacks' /home/canv_us/public_html/config/initializers/active_record.rb:1582:inblock in run_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation.rb:281:in scoping' /home/canv_us/public_html/config/initializers/active_record.rb:1582:inrun_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/callbacks.rb:816:in _run_save_callbacks' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/callbacks.rb:342:increate_or_update' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/persistence.rb:308:in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/validations.rb:52:insave!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:315:in block in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:387:inblock in with_transaction_returning_status' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:267:in block in transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/transaction.rb:239:inblock in within_new_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/transaction.rb:236:in within_new_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/database_statements.rb:267:intransaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:212:in transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:43:inblock in transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/relation.rb:104:in activate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:38:intransaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:385:in with_transaction_returning_status' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/transactions.rb:315:insave!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/suppressor.rb:48:in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:117:inblock in save!' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation.rb:281:in scoping' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/active_record/base.rb:117:insave!' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:45:in block (2 levels) in run' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:39:ineach' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:39:in block in run' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:136:inblock in find_in_batches' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:238:in block in in_batches' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:222:inloop' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:222:in in_batches' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/relation/batches.rb:135:infind_in_batches' /home/canv_us/public_html/config/initializers/active_record.rb:771:in find_in_batches' /home/canv_us/public_html/lib/data_fixup/add_role_overrides_for_new_permission.rb:35:inrun' /home/canv_us/public_html/db/migrate/20201216214616_more_granular_admin_users_permissions.rb:26:in up' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:817:inexec_migration' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:798:in block (2 levels) in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:797:inblock in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in with_connection' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/connection_pool_proxy.rb:15:inwith_connection' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:796:in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-3.1.2/lib/switchman_inst_jobs/active_record/migration.rb:16:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:608:in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:977:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1292:in block in execute_migration_in_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1345:inddl_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1291:in execute_migration_in_transaction' /home/canv_us/public_html/config/initializers/active_record.rb:1460:inexecute_migration_in_transaction' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1263:in block in migrate_without_lock' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1262:ineach' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1262:in migrate_without_lock' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1210:inblock in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1363:in with_advisory_lock' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1210:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1036:in up' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/migration.rb:1011:inmigrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/tasks/database_tasks.rb:172:in migrate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.4.4/lib/active_record/railties/databases.rake:60:inblock (2 levels) in <top (required)>' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:87:in block (6 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:87:ineach' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:87:in block (5 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/database_server.rb:109:inunguard' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:86:in block (4 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/app/models/switchman/shard.rb:152:inwith_each_shard' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:71:in block (3 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/database_server.rb:109:inunguard' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:68:in block (2 levels) in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/switchman/guard_rail.rb:24:inactivate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-3.1.2/lib/switchman_inst_jobs/guard_rail.rb:8:in activate' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.2/lib/tasks/switchman.rake:67:inblock in shardify_task' /home/canv_us/public_html/vendor/bundle/ruby/2.6.0/gems/rake-13.0.1/exe/rake:27:in <top (required)>' Tasks: TOP => db:migrate (See full trace by running task with --trace)

amg-web commented 3 years ago

diffrent server, same problem: == MoreGranularAdminUsersPermissions: migrating ============================== rake aborted! StandardError: An error has occurred, all later migrations canceled:

PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_role_overrides_on_context_role_permission" DETAIL: Key (context_id, context_type, role_id, permission)=(1, Account, 36, allow_course_admin_actions) already exists.

20201216214616_more_granular_admin_users_permissions.rb

amg-web commented 3 years ago

I found problem: during db:migrate we have to migrations with similar action db/migrate/20200922200047_granular_manage_admin_users_permissions.rb and db/migrate/20201216214616_more_granular_admin_users_permissions.rb the second one contain 2 new migrations in a compare to the first. of cource in such case I should get the error. I think it's safe to edit second migration and remove duplicated items or add condition check.

new migrations in second is only 2: DataFixup::AddRoleOverridesForNewPermission.run(:manage_admin_users, :add_teacher_to_course) DataFixup::AddRoleOverridesForNewPermission.run(:manage_admin_users, :remove_teacher_from_course)

simonista commented 3 years ago

@amg-web : yes, it should be fine to remove the duplicates. This code: https://github.com/instructure/canvas-lms/blob/master/lib/data_fixup/add_role_overrides_for_new_permission.rb#L40 is supposed to handle duplicates and make that call idempotent, and we haven't had any problems with this internally, so it still seems like something odd is going on

amg-web commented 3 years ago

Thanks for reply. is there any problem if I remove duplicated migrations?

пт, 4 июн. 2021 г. в 17:23, Simon Williams @.***>:

@amg-web https://github.com/amg-web : yes, it should be fine to remove the duplicates. This code: https://github.com/instructure/canvas-lms/blob/master/lib/data_fixup/add_role_overrides_for_new_permission.rb#L40 is supposed to handle duplicates and make that call idempotent, and we haven't had any problems with this internally, so it still seems like something odd is going on

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/instructure/canvas-lms/issues/1806#issuecomment-854766531, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFJAFSKW2M4GVZ3WPOKT5ZDTRDOX5ANCNFSM4W5HMBZA .

dgilperez commented 3 years ago

Just reporting I had the same problem, which got solved by commenting out the duplicated code.