我有一个空间应用程序(PostGIS + Rails + RGeo)的开始,line_string
在我的一个模型上只有一个列。在我的本地机器上一切都很好,问题出在 Heroku web dynos 上,其中 Rails/activerecord 无法识别 RGeo/PostGIS line_string 类型。
每次部署后,第一次加载模型时,我都会在日志中看到以下内容:
app[web.1]: unknown OID 17059: failed to recognize type of 'line_string'. It will be treated as String.
然后,如果我向 STDOUT 添加一些日志记录,我可以看到:
mymodel.line_string.class # String
RGeo::Feature::Geometry.check_type(mymodel.line_string) # false
但是,如果我使用 rails console ( ) 运行一次性测功机,heroku run rails c production
一切都很好。我看到了我期望的输出:
irb(main):001:0> mymodel.line_string.class
=> RGeo::Geographic::SphericalLineStringImpl
irb(main):002:0> RGeo::Feature::Geometry.check_type(mymodel.line_string)
=> true
在工人测功机下也可以。
什么会导致未知的 OID 错误?为什么一次性和工人测功机能够完美地使用这个专栏,而网络测功机却不行?