6

ja dostaję wiadomość od PGError: ERROR: integer out of range próbuje wstawić następującą liczbę całkowitą: 100001389928198.Heroku/Postgres Błąd: liczba całkowita z zakresu

Według Postgres docs on numeric datatypes limit jest znacznie wyższa (9223372036854775807). Mam wrażenie, że Heroku traktuje kolumnę jako zwykłą liczbę całkowitą, a nie BIGINT.

zdefiniowałem migrację jako BIGINT jako takie:

t.column :uid, :bigint 

Czy to nie jest poprawne pod względem migracji Heroku?

+0

wow to jest wielka ilość! Do czego go używasz? – ardochhigh

+0

to na Facebooku (dla rzeczy oauth) – neon

+0

Rozumiem. Sądzę, że zaczniemy teraz używać tych większych pól int. – ardochhigh

Odpowiedz

9

nie jestem pewien t.column jest taka sama jak change_column lub nie, ale tutaj jest jak według API

change_column :table_name, :uid, :bigint 
+0

moja oryginalna migracja była taka, jak podano powyżej, ale uruchomienie tego spowodowało powstanie problemu. dzięki! – neon

+0

to działało również dla mnie .. zaskakujące, biorąc pod uwagę, że: bigint nie jest wymieniony jako jeden z typów kolumn w przewodniku migracji i że: limit => 8 wydawał się działać dla mnie na pg lokalnie .. –

+0

Hmm ... I próbowałem tego i otrzymałem błąd nieokreślonej metody 'bigint 'dla # Skonfigurowałem zamiast tego t.integer: field,: limit => 8, aby ograniczyć rozmiar. – Lumbee