Heroku + рельсы, грабли дб мигрировали, работали локально и провалились на героку ... - PullRequest
0 голосов
/ 07 апреля 2011

Я изменяю масштаб на столбце следующим образом ....

change_column :options, :size, :decimal, :precision => 8, :scale => 8

Он работает локально, однако при запуске его heroku выдает ошибку ...

PGError: ERROR:  numeric field overflow
DETAIL:  A field with precision 8, scale 8 must round to an absolute value less than 1.
: ALTER TABLE "options" ALTER COLUMN "size" TYPE decimal(8,8)

Так как мне дать шкалу значений и точность 8 на героку?

Приветствия.

1 Ответ

3 голосов
/ 07 апреля 2011

Postgres (что запускается на Heroku) не требуется точность и масштаб, если они идентичны.

Точность - это общее количество значащих цифр

Шкала - это число цифр справа от DP.

Следовательно, путем установки 8 и 8. Это означает, что это должно быть всего 8 цифр и 8 цифр справа от DP. Следовательно, почему ошибка - вы не могли иметь ничего больше 1. Если вам нужно 8 цифр по обе стороны от DP, используйте точность как 16 и масштабируйте как 8. Если вам нужно всего 8 цифр, используйте только точность = 8.

Подробнее здесь

...