Change identities id column to a bigint (#9371)
* fix: change Identity's id column to a bigint This appears to be the last model created using a 5.0 migration, where column types defaulted to `integer` rather than `bigint`. This migration changes the column type to match that of all of the other ID columns. * Change user_id column in identities to bigint and fix down-migration
This commit is contained in:
		| @@ -3,12 +3,12 @@ | |||||||
| # | # | ||||||
| # Table name: identities | # Table name: identities | ||||||
| # | # | ||||||
| #  id         :integer          not null, primary key |  | ||||||
| #  user_id    :integer |  | ||||||
| #  provider   :string           default(""), not null | #  provider   :string           default(""), not null | ||||||
| #  uid        :string           default(""), not null | #  uid        :string           default(""), not null | ||||||
| #  created_at :datetime         not null | #  created_at :datetime         not null | ||||||
| #  updated_at :datetime         not null | #  updated_at :datetime         not null | ||||||
|  | #  id         :bigint(8)        not null, primary key | ||||||
|  | #  user_id    :bigint(8) | ||||||
| # | # | ||||||
|  |  | ||||||
| class Identity < ApplicationRecord | class Identity < ApplicationRecord | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								db/migrate/20181127130500_identity_id_to_bigint.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								db/migrate/20181127130500_identity_id_to_bigint.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | require Rails.root.join('lib', 'mastodon', 'migration_helpers') | ||||||
|  |  | ||||||
|  | class IdentityIdToBigint < ActiveRecord::Migration[5.2] | ||||||
|  |   include Mastodon::MigrationHelpers | ||||||
|  |  | ||||||
|  |   disable_ddl_transaction! | ||||||
|  |  | ||||||
|  |   def up | ||||||
|  |     safety_assured do | ||||||
|  |       change_column_type_concurrently :identities, :id, :bigint | ||||||
|  |       cleanup_concurrent_column_type_change :identities, :id | ||||||
|  |  | ||||||
|  |       change_column_type_concurrently :identities, :user_id, :bigint | ||||||
|  |       cleanup_concurrent_column_type_change :identities, :user_id | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   def down | ||||||
|  |     safety_assured do | ||||||
|  |       change_column_type_concurrently :identities, :id, :integer | ||||||
|  |       cleanup_concurrent_column_type_change :identities, :id | ||||||
|  |  | ||||||
|  |       change_column_type_concurrently :identities, :user_id, :integer | ||||||
|  |       cleanup_concurrent_column_type_change :identities, :user_id | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
| @@ -10,7 +10,7 @@ | |||||||
| # | # | ||||||
| # It's strongly recommended that you check this file into your version control system. | # It's strongly recommended that you check this file into your version control system. | ||||||
|  |  | ||||||
| ActiveRecord::Schema.define(version: 2018_11_16_184611) do | ActiveRecord::Schema.define(version: 2018_11_27_130500) do | ||||||
|  |  | ||||||
|   # These are extensions that must be enabled in order to support this database |   # These are extensions that must be enabled in order to support this database | ||||||
|   enable_extension "plpgsql" |   enable_extension "plpgsql" | ||||||
| @@ -235,12 +235,12 @@ ActiveRecord::Schema.define(version: 2018_11_16_184611) do | |||||||
|     t.index ["target_account_id"], name: "index_follows_on_target_account_id" |     t.index ["target_account_id"], name: "index_follows_on_target_account_id" | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   create_table "identities", id: :serial, force: :cascade do |t| |   create_table "identities", force: :cascade do |t| | ||||||
|     t.integer "user_id" |  | ||||||
|     t.string "provider", default: "", null: false |     t.string "provider", default: "", null: false | ||||||
|     t.string "uid", default: "", null: false |     t.string "uid", default: "", null: false | ||||||
|     t.datetime "created_at", null: false |     t.datetime "created_at", null: false | ||||||
|     t.datetime "updated_at", null: false |     t.datetime "updated_at", null: false | ||||||
|  |     t.bigint "user_id" | ||||||
|     t.index ["user_id"], name: "index_identities_on_user_id" |     t.index ["user_id"], name: "index_identities_on_user_id" | ||||||
|   end |   end | ||||||
|  |  | ||||||
| @@ -651,7 +651,7 @@ ActiveRecord::Schema.define(version: 2018_11_16_184611) do | |||||||
|   add_foreign_key "follow_requests", "accounts", name: "fk_76d644b0e7", on_delete: :cascade |   add_foreign_key "follow_requests", "accounts", name: "fk_76d644b0e7", on_delete: :cascade | ||||||
|   add_foreign_key "follows", "accounts", column: "target_account_id", name: "fk_745ca29eac", on_delete: :cascade |   add_foreign_key "follows", "accounts", column: "target_account_id", name: "fk_745ca29eac", on_delete: :cascade | ||||||
|   add_foreign_key "follows", "accounts", name: "fk_32ed1b5560", on_delete: :cascade |   add_foreign_key "follows", "accounts", name: "fk_32ed1b5560", on_delete: :cascade | ||||||
|   add_foreign_key "identities", "users", on_delete: :cascade |   add_foreign_key "identities", "users", name: "fk_bea040f377", on_delete: :cascade | ||||||
|   add_foreign_key "imports", "accounts", name: "fk_6db1b6e408", on_delete: :cascade |   add_foreign_key "imports", "accounts", name: "fk_6db1b6e408", on_delete: :cascade | ||||||
|   add_foreign_key "invites", "users", on_delete: :cascade |   add_foreign_key "invites", "users", on_delete: :cascade | ||||||
|   add_foreign_key "list_accounts", "accounts", on_delete: :cascade |   add_foreign_key "list_accounts", "accounts", on_delete: :cascade | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user