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:
parent
2ba5d63a05
commit
4afda5444a
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue