Skip to content

Commit e3f65b7

Browse files
authored
Merge pull request #1845 from codetriage/schneems/fix-slop
Fix slop
2 parents 5042fc0 + 7213f4b commit e3f65b7

1 file changed

Lines changed: 9 additions & 19 deletions

File tree

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,24 @@
11
# frozen_string_literal: true
22

33
class ChangeIssuesIdToBigint < ActiveRecord::Migration[7.0]
4-
# Disable transaction to allow running on large tables without locking for too long
5-
# You may want to run this during low-traffic periods
6-
disable_ddl_transaction!
7-
84
def up
95
# Change the id column from integer (serial) to bigint (bigserial)
106
# This is necessary because the issues table has exceeded the 32-bit integer limit
117
# Max integer: 2,147,483,647
128
# Max bigint: 9,223,372,036,854,775,807
139

14-
safety_assured do
15-
# Change the primary key column type
16-
execute "ALTER TABLE issues ALTER COLUMN id TYPE bigint"
17-
18-
# Change the sequence type to bigint as well
19-
execute "ALTER SEQUENCE issues_id_seq AS bigint"
10+
# Primary keys
11+
change_column :issues, :id, :bigint
12+
change_column :issue_assignments, :id, :bigint
2013

21-
# Also update foreign keys in issue_assignments that reference issues.id
22-
execute "ALTER TABLE issue_assignments ALTER COLUMN issue_id TYPE bigint"
23-
end
14+
# Foreign keys
15+
change_column :issue_assignments, :issue_id, :bigint
2416
end
2517

2618
def down
27-
safety_assured do
28-
# Note: This could fail if there are values > 2,147,483,647
29-
execute "ALTER TABLE issue_assignments ALTER COLUMN issue_id TYPE integer"
30-
execute "ALTER SEQUENCE issues_id_seq AS integer"
31-
execute "ALTER TABLE issues ALTER COLUMN id TYPE integer"
32-
end
19+
# Note: This could fail if there are values > 2,147,483,647
20+
change_column :issue_assignments, :issue_id, :integer
21+
change_column :issue_assignments, :id, :integer
22+
change_column :issues, :id, :integer
3323
end
3424
end

0 commit comments

Comments
 (0)