2011-08-25 36 views
6

Tôi nhận được tin nhắn từ PGError: ERROR: integer out of range cố gắng để chèn các số nguyên sau: 100001389928198.Heroku/Postgres Lỗi: số nguyên ra khỏi phạm vi

Theo Postgres docs on numeric datatypes giới hạn là cao hơn nhiều (9223372036854775807). Tôi có một cảm giác Heroku đang xử lý cột như một số nguyên thường xuyên hơn là một BIGINT.

tôi xác định sự di cư như một bigint như vậy:

t.column :uid, :bigint 

là này không đúng về sự di cư của Heroku?

+0

wow đó là một số lượng lớn! Những gì bạn đang sử dụng nó cho? – ardochhigh

+0

một facebook uid của nó (cho công cụ oauth) – neon

+0

Tôi hiểu. Vì vậy, tôi đoán chúng tôi sẽ bắt đầu sử dụng các trường int lớn hơn bây giờ. – ardochhigh

Trả lời

9

Tôi không chắc chắn t.column là giống như change_column hay không, nhưng đây là làm thế nào theo api

change_column :table_name, :uid, :bigint 
+0

di cư ban đầu của tôi là như đã nêu ở trên, nhưng chạy điều này đã làm các trick. cảm ơn! – neon

+0

điều này làm việc cho tôi quá .. đáng ngạc nhiên cho rằng: bigint không được liệt kê như là một trong các loại cột trong hướng dẫn di chuyển và rằng: limit => 8 dường như làm việc cho tôi trên pg cục bộ .. –

+0

Hmm ... I đã thử điều này và nhận được phương thức undefined error 'bigint 'cho # Đã kết thúc làm t.integer: field,: limit => 8 thay vì giới hạn kích thước. – Lumbee

Các vấn đề liên quan