sql >> Base de Datos >  >> RDS >> PostgreSQL

Entero fuera de rango en la base de datos PostgreSQL

Para columnas de tipo integer , el :limit value es la longitud máxima de la columna en bytes (documentation ).

Con una longitud de 4 bytes, el entero con signo más grande que puede almacenar es 2 147 483 647, mucho más pequeño que su valor de 4 825 733 517. Puede aumentar el límite de bytes, por ejemplo, a 8 bytes para que sea un número entero largo (un tipo de PostgreSQL bigint ), esto le permitirá almacenar valores con signo hasta 9,223,372,036,854,775,807.

Puedes hacer esto con una migración, créala con algo como rails generate migration change_integer_limit_in_your_table y el siguiente código:

class ChangeIntegerLimitInYourTable < ActiveRecord::Migration
  def change
    change_column :your_table, :your_column, :integer, limit: 8
  end 
end