【发布时间】:2017-09-19 10:52:12
【问题描述】:
将应用程序复制到生产环境时,我的 POSTGIS 表列开始出现异常,Rails 通知我有一个“未知的 OID 26865”,并且这些字段将被视为字符串。
而不是 current_pos 产生 e。 G。
#<RGeo::Geographic::SphericalPointImpl:0x22fabdc "POINT (13.39318248760133 52.52908798020595)"> 我会得到0101000020E6100000FFDD958664C92A403619DEE6B2434A40。看起来 activerecord-postgis-adapter 没有安装,或者安装不好,但我通过测试数据类型 RGeo::Feature::Point 的存在和测试分配current_pos = "POINT (13.39318248760133 52.52908798020595)" 消除了这种可能性
到现场 - 它没有错误地进行,但随后产生了另一个像上面一样难以理解的十六进制字符串。
另外,奇怪的是,POSTGIS 在数据库中正常工作,例如为 ST_DISTANCE 查询提供正确的结果。因此,一个非常有限的问题,写入、写入解析(从点格式到十六进制格式)、通过 SQL 操作和读取都可以工作,只有读取时的解析没有。
当我尝试使用迁移来确保数据库列具有正确的类型时,迁移失败,给
undefined method `st_point' for #<ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition:0x00000005cb80b8>
【问题讨论】:
标签: ruby-on-rails activerecord adapter postgis