Краны Heroku выдвигают странность - PullRequest
2 голосов
/ 23 апреля 2010

У меня самый странный опыт использования метчиков для перемещения данных между моей машиной и Heroku.

Он работает нормально, за исключением того, что кажется, что он теряет 0s сразу после десятичного знака для моих географических координат, то есть 50.0519322 по некоторым причинам получаетустановить на 50,519322 ... понятия не имею, почему.

Когда я извлекаю данные из удаленного расположения, т.е.heroku db: pull ... он работает нормально, все десятичные разряды на моем компьютере не повреждены, однако, когда я возвращаю его на удаленный сервер, он теряет эти нули.Особенно непосредственно за десятичной точкой, хотя я еще нигде не заметил этого.

Сначала я сохранял значения lat и lng как просто числовые, но уточнил это до:

change_column :places, :lat, :numeric, :precision => 15, :scale => 10
change_column :places, :lng, :numeric, :precision => 15, :scale => 10

Снет результата, есть идеи, что происходит?

С консоли на удаленном сервере я получаю lat как:

#<BigDecimal:2aebcc5967c0,'0.50519322E2',18(18)>

и мою машину как:

#<BigDecimal:10232f7c8,'0.50519322E2',12(16)>

, что также странно, второй, потому что он отображается как 50.0519322, когда я редактирую его через мое представление, но когда я делаю to_f через консоль, он дает мне 50.519322

И сервер, и локальная машина являются postgres, хранилище какчисловой.

1 Ответ

0 голосов
/ 09 октября 2011

Это похоже на ошибку BigDecimal в Ruby: http://blog.ethanvizitei.com/2010/04/bug-with-bigdecimal-in-ruby-187.html

db:pull и db:push лучше всего подходят для разработки. Я рекомендую использовать систему PGBackups для перемещения данных без каких-либо шансов переключения между вашей локальной системой и Heroku:

http://devcenter.heroku.com/articles/pgbackups

...