【发布时间】:2023-01-20 16:51:14
【问题描述】:
我很难在 RDS 服务器上使用 postgis。
扩展名“postgis”存在并且数据被正确记录。
record.update(lonlat: 'POINT(2.4214133 48.7364525)')
=> true
record.lonlat
=> #<RGeo::Geographic::SphericalPointImpl:0x30fe8 "POINT (2.4214133 48.7364525)">
但是当我想运行空间查询时,
Records.where("ST_DWithin(records.lonlat, 'POINT(-1.548977 47.216369)'::GEOMETRY, '10000'::INTEGER)")
我得到以下信息:
ActiveRecord::StatementInvalid (PG::UndefinedObject: ERROR: type "geometry" does not exist)
我试图删除扩展并重新创建它,但我不想删除数据,所以我似乎不能:
ActiveRecord::StatementInvalid (PG::DependentObjectsStillExist: ERROR: cannot drop extension postgis because other objects depend on it)
postgis 专用于搜索路径中包含的不同模式,我确实授予了对该模式的所有权限。
在本地和 heroku 上它都可以正常工作。
我们使用 gem activerecord-postgis-adapter。
这是我的 database.yml url 行:
url: <%= ENV.fetch('DATABASE_URL', '').sub(/^postgres(ql)?/, "postgis") %>
【问题讨论】:
标签: ruby-on-rails amazon-rds postgis