remove unused PG <12 code paths

since we require Postgres 12 or newer, this code can be cleaned up

test plan: specs

Change-Id: I87734a43192ff4accdd9dd44bb4012c25ac8a5f1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281526
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Migration-Review: Jacob Burroughs <jburroughs@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
This commit is contained in:
Jeremy Stanley 2021-12-17 12:19:34 -07:00
parent 5a40a915b9
commit 27ca834869
12 changed files with 16 additions and 145 deletions

View File

@ -293,8 +293,6 @@ module PostgreSQLAdapterExtensions
end
def icu_collations
return [] if postgresql_version < 12_00_00 # rubocop:disable Style/NumericLiterals
@collations ||= select_rows <<~SQL.squish, "SCHEMA"
SELECT nspname, collname
FROM pg_collation
@ -307,8 +305,6 @@ module PostgreSQLAdapterExtensions
end
def create_icu_collations
return if postgresql_version < 12_00_00 # rubocop:disable Style/NumericLiterals
original_locale = I18n.locale
collation = "und-u-kn-true"

View File

@ -21,26 +21,12 @@ class ModifySubmissionAndQuizSubmissionUserForeignKeyConstraint < ActiveRecord::
tag :predeploy
def up
if connection.send(:postgresql_version) >= 9_04_00 # rubocop:disable Style/NumericLiterals
alter_constraint(:submissions, find_foreign_key(:submissions, :users), new_name: "fk_rails_8d85741475", deferrable: true)
alter_constraint(:quiz_submissions, find_foreign_key(:quiz_submissions, :users), new_name: "fk_rails_04850db4b4", deferrable: true)
else
remove_foreign_key :quiz_submissions, :users, if_exists: true
add_foreign_key :quiz_submissions, :users, deferrable: true, delay_validation: true
remove_foreign_key :submissions, :users, if_exists: true
add_foreign_key :submissions, :users, deferrable: true, delay_validation: true
end
alter_constraint(:submissions, find_foreign_key(:submissions, :users), new_name: "fk_rails_8d85741475", deferrable: true)
alter_constraint(:quiz_submissions, find_foreign_key(:quiz_submissions, :users), new_name: "fk_rails_04850db4b4", deferrable: true)
end
def down
if connection.send(:postgresql_version) >= 9_04_00 # rubocop:disable Style/NumericLiterals
alter_constraint(:submissions, "fk_rails_8d85741475", deferrable: false)
alter_constraint(:quiz_submissions, "fk_rails_04850db4b4", deferrable: false)
else
remove_foreign_key :quiz_submissions, :users, if_exists: true
add_foreign_key :quiz_submissions, :users, deferrable: false, delay_validation: true
remove_foreign_key :submissions, :users, if_exists: true
add_foreign_key :submissions, :users, deferrable: false, delay_validation: true
end
alter_constraint(:submissions, "fk_rails_8d85741475", deferrable: false)
alter_constraint(:quiz_submissions, "fk_rails_04850db4b4", deferrable: false)
end
end

View File

@ -23,11 +23,6 @@ class AddIndexToSubmissionsGradedAt < ActiveRecord::Migration[5.0]
disable_ddl_transaction!
def change
# brin indexes are only available on Postgres versions 9.5+
if connection.send(:postgresql_version) >= 9_05_00 # rubocop:disable Style/NumericLiterals
add_index :submissions, :graded_at, algorithm: :concurrently, using: :brin
else
add_index :submissions, :graded_at, algorithm: :concurrently
end
add_index :submissions, :graded_at, algorithm: :concurrently, using: :brin
end
end

View File

@ -4,11 +4,6 @@ class RenameSwitchmanShardsFkIfNecessary < ActiveRecord::Migration[5.1]
tag :predeploy
def up
if connection.send(:postgresql_version) >= 9_04_00 # rubocop:disable Style/NumericLiterals
alter_constraint(:switchman_shards, find_foreign_key(:switchman_shards, :switchman_shards, column: :delayed_jobs_shard_id), new_name: "fk_rails_45bd80a9c8")
else
remove_foreign_key :switchman_shards, column: :delayed_jobs_shard_id, if_exists: true
add_foreign_key :switchman_shards, :switchman_shards, column: :delayed_jobs_shard_id
end
alter_constraint(:switchman_shards, find_foreign_key(:switchman_shards, :switchman_shards, column: :delayed_jobs_shard_id), new_name: "fk_rails_45bd80a9c8")
end
end

View File

@ -21,14 +21,8 @@ class AddRedoRequestToSubmissions < ActiveRecord::Migration[5.2]
tag :predeploy
def up
if connection.postgresql_version >= 11_00_00 # rubocop:disable Style/NumericLiterals
remove_column :submissions, :redo_request, if_exists: true # rubocop:disable Migration/RemoveColumn column replaced transactionally
add_column :submissions, :redo_request, :boolean, default: false, null: false
else
# backfill and default will come in a postdeploy
add_column :submissions, :redo_request, :boolean
change_column_default(:submissions, :redo_request, false)
end
remove_column :submissions, :redo_request, if_exists: true # rubocop:disable Migration/RemoveColumn column replaced transactionally
add_column :submissions, :redo_request, :boolean, default: false, null: false
end
def down

View File

@ -1,38 +0,0 @@
# frozen_string_literal: true
#
# Copyright (C) 2021 - present Instructure, Inc.
#
# This file is part of Canvas.
#
# Canvas is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, version 3 of the License.
#
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
class BackfillSubmissionsRedoRequest < ActiveRecord::Migration[5.2]
tag :postdeploy
disable_ddl_transaction!
def self.runnable?
connection.postgresql_version < 11_00_00 # rubocop:disable Style/NumericLiterals
end
def up
if Submission.columns.detect { |c| c.name == "redo_request" }&.null
DataFixup::BackfillNulls.run(Submission, :redo_request, default_value: false)
change_column_null(:submissions, :redo_request, false)
end
end
def down
change_column_null(:submissions, :redo_request, true)
end
end

View File

@ -22,21 +22,12 @@ class AddCourseTemplateColumns < ActiveRecord::Migration[6.0]
disable_ddl_transaction!
def up
new_pg = connection.postgresql_version >= 11_00_00 # rubocop:disable Style/NumericLiterals
defaults = new_pg ? { default: false, null: false } : {}
add_column :courses, :template, :boolean, if_not_exists: true, **defaults
add_column :courses, :template, :boolean, if_not_exists: true, default: false, null: false
add_index :courses, :root_account_id, where: "template", algorithm: :concurrently, if_not_exists: true
add_reference :accounts, :course_template,
if_not_exists: true,
index: { where: "course_template_id IS NOT NULL", algorithm: :concurrently, if_not_exists: true },
foreign_key: { to_table: :courses }
unless new_pg
change_column_default :courses, :template, false
DataFixup::BackfillNulls.run(Course, :template, default_value: false)
change_column_null :courses, :template, false
end
end
def down

View File

@ -23,14 +23,7 @@ class AddWorkflowStateToLearningOutcomeResult < ActiveRecord::Migration[6.0]
disable_ddl_transaction!
def up
if connection.postgresql_version >= 11_00_00 # rubocop:disable Style/NumericLiterals
add_column :learning_outcome_results, :workflow_state, :string, default: "active", null: false, if_not_exists: true
else
add_column :learning_outcome_results, :workflow_state, :string, if_not_exists: true
change_column_default :learning_outcome_results, :workflow_state, "active"
DataFixup::BackfillNulls.run(LearningOutcomeResult, :workflow_state, default_value: "active")
change_column_null :learning_outcome_results, :workflow_state, false
end
add_column :learning_outcome_results, :workflow_state, :string, default: "active", null: false, if_not_exists: true
end
def down

View File

@ -22,21 +22,10 @@ class AddHomeroomCourseColumns < ActiveRecord::Migration[6.0]
disable_ddl_transaction!
def up
new_pg = connection.postgresql_version >= 11_00_00 # rubocop:disable Style/NumericLiterals
defaults = new_pg ? { default: false, null: false } : {}
add_column :courses, :homeroom_course, :boolean, if_not_exists: true, **defaults
add_column :courses, :sync_enrollments_from_homeroom, :boolean, if_not_exists: true, **defaults
add_column :courses, :homeroom_course, :boolean, if_not_exists: true, default: false, null: false
add_column :courses, :sync_enrollments_from_homeroom, :boolean, if_not_exists: true, default: false, null: false
add_reference :courses, :homeroom_course, if_not_exists: true, index: false, foreign_key: { to_table: :courses }
unless new_pg
change_column_default :courses, :homeroom_course, false
change_column_default :courses, :sync_enrollments_from_homeroom, false
DataFixup::BackfillNulls.run(Course, [:homeroom_course, :sync_enrollments_from_homeroom], default_value: false)
change_column_null :courses, :homeroom_course, false
change_column_null :courses, :sync_enrollments_from_homeroom, false
end
add_index :courses, :homeroom_course, where: "homeroom_course", algorithm: :concurrently, if_not_exists: true
add_index :courses, :sync_enrollments_from_homeroom, where: "sync_enrollments_from_homeroom", algorithm: :concurrently, if_not_exists: true
end

View File

@ -21,24 +21,11 @@ class AddImportantDatesColumns < ActiveRecord::Migration[6.0]
disable_ddl_transaction!
def up
new_pg = connection.postgresql_version >= 11_00_00 # rubocop:disable Style/NumericLiterals
defaults = new_pg ? { default: false, null: false } : {}
add_column :assignments, :important_dates, :boolean, if_not_exists: true, **defaults
add_column :calendar_events, :important_dates, :boolean, if_not_exists: true, **defaults
add_column :assignments, :important_dates, :boolean, if_not_exists: true, default: false, null: false
add_column :calendar_events, :important_dates, :boolean, if_not_exists: true, default: false, null: false
add_index :assignments, :important_dates, where: "important_dates", algorithm: :concurrently, if_not_exists: true
add_index :calendar_events, :important_dates, where: "important_dates", algorithm: :concurrently, if_not_exists: true
unless new_pg
change_column_default :assignments, :important_dates, false
DataFixup::BackfillNulls.run(Assignment, :important_dates, default_value: false)
change_column_null :assignments, :important_dates, false
change_column_default :calendar_events, :important_dates, false
DataFixup::BackfillNulls.run(CalendarEvent, :important_dates, default_value: false)
change_column_null :calendar_events, :important_dates, false
end
end
def down

View File

@ -22,16 +22,7 @@ class AddLegacyToDiscussionEntry < ActiveRecord::Migration[6.0]
disable_ddl_transaction!
def up
new_pg = connection.postgresql_version >= 11_00_00 # rubocop:disable Style/NumericLiterals
defaults = new_pg ? { default: true, null: false } : {}
add_column :discussion_entries, :legacy, :boolean, if_not_exists: true, **defaults
unless new_pg
change_column_default :discussion_entries, :legacy, true
DataFixup::BackfillNulls.run(DiscussionEntry, [:legacy], default_value: true)
change_column_null :discussion_entries, :legacy, false
end
add_column :discussion_entries, :legacy, :boolean, if_not_exists: true, default: true, null: false
add_index :discussion_entries, :legacy, where: "legacy", algorithm: :concurrently, if_not_exists: true
end

View File

@ -22,15 +22,7 @@ class AddIncludeReplyPreviewToDiscussionEntry < ActiveRecord::Migration[6.0]
disable_ddl_transaction!
def up
new_pg = connection.postgresql_version >= 11_00_00 # rubocop:disable Style/NumericLiterals
defaults = new_pg ? { default: false, null: false } : {}
add_column :discussion_entries, :include_reply_preview, :boolean, if_not_exists: true, **defaults
unless new_pg
change_column_default :discussion_entries, :include_reply_preview, false
DataFixup::BackfillNulls.run(DiscussionEntry, [:include_reply_preview], default_value: false)
change_column_null :discussion_entries, :include_reply_preview, false
end
add_column :discussion_entries, :include_reply_preview, :boolean, if_not_exists: true, default: false, null: false
end
def down