【问题标题】:Heroku taps push weirdnessHeroku水龙头推动怪异
【发布时间】:2011-02-11 13:38:11
【问题描述】:

我有过使用水龙头在我的机器和 Heroku 之间移动数据的最奇怪的体验。

它工作正常,只是它似乎在我的地理坐标的小数位后面直接丢失了 0,即 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,存储为数字。

【问题讨论】:

  • 您使用的数据库是什么,该字段的数据类型是什么?
  • 服务器和本地机器的postgres...数字
  • 升级到最新版本的 heroku 和 taps,没有帮助。我以前使用过同样的约定,从来没有遇到过类似的问题,或者我注意到了。所以这让我很担心。对于我实际使用的数据,我将不得不丢失 0...
  • 最新的 sequel/heroku/taps gems 还会发生这种情况吗?

标签: ruby-on-rails geolocation heroku numeric taps


【解决方案1】:

这听起来像是 Ruby 中的 BigDecimal 错误: http://blog.ethanvizitei.com/2010/04/bug-with-bigdecimal-in-ruby-187.html

db:pulldb:push 最适合开发使用。我建议使用 PGBackups 系统来移动数据,而不会在本地系统和 Heroku 之间进行任何更改:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2014-10-04
    • 2013-04-10
    • 2011-07-06
    相关资源
    最近更新 更多