Rails 5.2.3 + postgresql 11.5 + gem 'pg', '1.1.4'.Моя первая миграция:
class CreateTmpUsers < ActiveRecord::Migration[5.2]
def change
create_table(:tmp_users) do |t|
t.integer :external_id
...
end
add_index ...
end
end
вторая миграция:
class MigrateToRails52 < ActiveRecord::Migration[5.2]
def up
change_column :tmp_users, :external_id, :bigint
...
end
schema.db после rails db: migrate:
create_table "tmp_users", force: :cascade do |t|
t.bigint "external_id"
...
end
schema.db после rails db:схема: dump
create_table "tmp_users", force: :cascade do |t|
t.bigint "external_id"
...
end
внутри pgadmin Я вижу: Тип: bigint
TmpUser.inspect дает:
TmpUser(id: integer, external_id: integer, name: strin...
Сохранение через ActiveRecord дает:
TmpUser.create external_id: 392169714724389808
сообщение: 392169714724389808 находится вне диапазона для ActiveModel :: Type :: Integer с лимитом 4 байта. Класс ошибки: ActiveModel :: RangeError
Мне нужно 8 байтов, но получил 4 в проверке