Skip to content

Commit 5c7092d

Browse files
authored
Merge pull request #1846 from codetriage/schneems/more-smallint-fixes
Fix other small serial columns
2 parents e3f65b7 + 8b31eaa commit 5c7092d

2 files changed

Lines changed: 82 additions & 21 deletions

File tree

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# frozen_string_literal: true
2+
3+
class ChangeRemainingIdsToBigint < ActiveRecord::Migration[7.0]
4+
def up
5+
# Change remaining id columns from integer (serial) to bigint (bigserial)
6+
# Max integer: 2,147,483,647
7+
# Max bigint: 9,223,372,036,854,775,807
8+
9+
# Primary keys
10+
change_column :data_dumps, :id, :bigint
11+
change_column :doc_assignments, :id, :bigint
12+
change_column :doc_classes, :id, :bigint
13+
change_column :doc_comments, :id, :bigint
14+
change_column :doc_methods, :id, :bigint
15+
change_column :repo_subscriptions, :id, :bigint
16+
change_column :repos, :id, :bigint
17+
change_column :users, :id, :bigint
18+
19+
# Foreign keys
20+
change_column :doc_assignments, :repo_id, :bigint
21+
change_column :doc_assignments, :repo_subscription_id, :bigint
22+
change_column :doc_assignments, :doc_method_id, :bigint
23+
change_column :doc_assignments, :doc_class_id, :bigint
24+
change_column :doc_classes, :repo_id, :bigint
25+
change_column :doc_comments, :doc_class_id, :bigint
26+
change_column :doc_comments, :doc_method_id, :bigint
27+
change_column :doc_methods, :repo_id, :bigint
28+
change_column :issue_assignments, :repo_subscription_id, :bigint
29+
change_column :issues, :repo_id, :bigint
30+
change_column :repo_subscriptions, :user_id, :bigint
31+
change_column :repo_subscriptions, :repo_id, :bigint
32+
end
33+
34+
def down
35+
# Note: This could fail if there are values > 2,147,483,647
36+
37+
# Foreign keys
38+
change_column :repo_subscriptions, :repo_id, :integer
39+
change_column :repo_subscriptions, :user_id, :integer
40+
change_column :issues, :repo_id, :integer
41+
change_column :issue_assignments, :repo_subscription_id, :integer
42+
change_column :doc_methods, :repo_id, :integer
43+
change_column :doc_comments, :doc_method_id, :integer
44+
change_column :doc_comments, :doc_class_id, :integer
45+
change_column :doc_classes, :repo_id, :integer
46+
change_column :doc_assignments, :doc_class_id, :integer
47+
change_column :doc_assignments, :doc_method_id, :integer
48+
change_column :doc_assignments, :repo_subscription_id, :integer
49+
change_column :doc_assignments, :repo_id, :integer
50+
51+
# Primary keys
52+
change_column :users, :id, :integer
53+
change_column :repos, :id, :integer
54+
change_column :repo_subscriptions, :id, :integer
55+
change_column :doc_methods, :id, :integer
56+
change_column :doc_comments, :id, :integer
57+
change_column :doc_classes, :id, :integer
58+
change_column :doc_assignments, :id, :integer
59+
change_column :data_dumps, :id, :integer
60+
end
61+
end

db/schema.rb

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,31 @@
1010
#
1111
# It's strongly recommended that you check this file into your version control system.
1212

13-
ActiveRecord::Schema[7.0].define(version: 2026_02_02_160000) do
13+
ActiveRecord::Schema[7.0].define(version: 2026_02_02_163145) do
1414
# These are extensions that must be enabled in order to support this database
1515
enable_extension "pg_stat_statements"
1616
enable_extension "plpgsql"
1717

18-
create_table "data_dumps", id: :serial, force: :cascade do |t|
18+
create_table "data_dumps", force: :cascade do |t|
1919
t.text "data"
2020
t.datetime "created_at", precision: nil
2121
t.datetime "updated_at", precision: nil
2222
end
2323

24-
create_table "doc_assignments", id: :serial, force: :cascade do |t|
25-
t.integer "repo_id"
26-
t.integer "repo_subscription_id"
27-
t.integer "doc_method_id"
28-
t.integer "doc_class_id"
24+
create_table "doc_assignments", force: :cascade do |t|
25+
t.bigint "repo_id"
26+
t.bigint "repo_subscription_id"
27+
t.bigint "doc_method_id"
28+
t.bigint "doc_class_id"
2929
t.datetime "created_at", precision: nil
3030
t.datetime "updated_at", precision: nil
3131
t.boolean "clicked", default: false
3232
t.index ["repo_id"], name: "index_doc_assignments_on_repo_id"
3333
t.index ["repo_subscription_id", "doc_method_id"], name: "index_doc_assignments_on_repo_subscription_id_and_doc_method_id"
3434
end
3535

36-
create_table "doc_classes", id: :serial, force: :cascade do |t|
37-
t.integer "repo_id"
36+
create_table "doc_classes", force: :cascade do |t|
37+
t.bigint "repo_id"
3838
t.string "name"
3939
t.datetime "created_at", precision: nil, null: false
4040
t.datetime "updated_at", precision: nil, null: false
@@ -45,18 +45,18 @@
4545
t.index ["repo_id", "doc_comments_count"], name: "index_doc_classes_on_repo_id_and_doc_comments_count"
4646
end
4747

48-
create_table "doc_comments", id: :serial, force: :cascade do |t|
49-
t.integer "doc_class_id"
50-
t.integer "doc_method_id"
48+
create_table "doc_comments", force: :cascade do |t|
49+
t.bigint "doc_class_id"
50+
t.bigint "doc_method_id"
5151
t.text "comment"
5252
t.datetime "created_at", precision: nil
5353
t.datetime "updated_at", precision: nil
5454
t.index ["doc_class_id"], name: "index_doc_comments_on_doc_class_id"
5555
t.index ["doc_method_id"], name: "index_doc_comments_on_doc_method_id"
5656
end
5757

58-
create_table "doc_methods", id: :serial, force: :cascade do |t|
59-
t.integer "repo_id"
58+
create_table "doc_methods", force: :cascade do |t|
59+
t.bigint "repo_id"
6060
t.string "name"
6161
t.integer "line"
6262
t.datetime "created_at", precision: nil, null: false
@@ -78,7 +78,7 @@
7878
t.bigint "issue_id"
7979
t.datetime "created_at", precision: nil, null: false
8080
t.datetime "updated_at", precision: nil, null: false
81-
t.integer "repo_subscription_id"
81+
t.bigint "repo_subscription_id"
8282
t.boolean "clicked", default: false
8383
t.boolean "delivered", default: false
8484
t.index ["repo_subscription_id", "delivered"], name: "index_issue_assignments_on_repo_subscription_id_and_delivered"
@@ -93,7 +93,7 @@
9393
t.integer "number"
9494
t.datetime "created_at", precision: nil, null: false
9595
t.datetime "updated_at", precision: nil, null: false
96-
t.integer "repo_id"
96+
t.bigint "repo_id"
9797
t.text "title"
9898
t.string "html_url"
9999
t.string "state"
@@ -121,11 +121,11 @@
121121
t.index ["repo_id"], name: "index_repo_labels_on_repo_id"
122122
end
123123

124-
create_table "repo_subscriptions", id: :serial, force: :cascade do |t|
124+
create_table "repo_subscriptions", force: :cascade do |t|
125125
t.datetime "created_at", precision: nil, null: false
126126
t.datetime "updated_at", precision: nil, null: false
127-
t.integer "user_id"
128-
t.integer "repo_id"
127+
t.bigint "user_id"
128+
t.bigint "repo_id"
129129
t.datetime "last_sent_at", precision: nil
130130
t.integer "email_limit", default: 1
131131
t.boolean "write", default: false
@@ -139,7 +139,7 @@
139139
t.index ["write"], name: "index_repo_subscriptions_on_write"
140140
end
141141

142-
create_table "repos", id: :serial, force: :cascade do |t|
142+
create_table "repos", force: :cascade do |t|
143143
t.string "name"
144144
t.string "user_name"
145145
t.integer "issues_count", default: 0, null: false
@@ -165,7 +165,7 @@
165165
t.index ["user_name"], name: "index_repos_on_user_name"
166166
end
167167

168-
create_table "users", id: :serial, force: :cascade do |t|
168+
create_table "users", force: :cascade do |t|
169169
t.string "email", default: "", null: false
170170
t.string "encrypted_password", default: "", null: false
171171
t.string "reset_password_token"

0 commit comments

Comments
 (0)