Rails 5.2.3 + postgresql 11.5 + gem 'pg', '1.1.4'. My first migration:
class CreateTmpUsers < ActiveRecord::Migration[5.2]
def change
create_table(:tmp_users) do |t|
t.integer :external_id
...
end
add_index ...
end
end
second migration:
class MigrateToRails52 < ActiveRecord::Migration[5.2]
def up
change_column :tmp_users, :external_id, :bigint
...
end
schema.db after rails db:migrate:
create_table "tmp_users", force: :cascade do |t|
t.bigint "external_id"
...
end
schema.db after rails db:schema:dump
create_table "tmp_users", force: :cascade do |t|
t.bigint "external_id"
...
end
inside pgadmin I see: Type: bigint
TmpUser.inspect gives:
TmpUser(id: integer, external_id: integer, name: strin...
Save through ActiveRecord gives:
TmpUser.create external_id: 392169714724389808
message: 392169714724389808 is out of range for ActiveModel::Type::Integer with limit 4 bytes error class: ActiveModel::RangeError
I need 8 bytes, but got 4 in validation