我有使用水龙头在我的机器和 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,存储为数字。