我正试图将polygon列类型更改为multipolygon列类型。
我的代码很简单。

change_column :messages, :area_shape, :multipolygon, srid: 3785

但是Postgres不知道这种类型。我以为我的PostGIS配置遗漏了一些东西,但我看不到。
这是我的错误:
rake aborted!
PG::UndefinedObject: ERROR:  type "multipolygon" does not exist
: ALTER TABLE "messages" ALTER COLUMN "area_shape" TYPE multipolygon

这就是我将area_shape创建为polygon类型的方式:
add_column :messages, :area_shape, :polygon, srid: 3785

谢谢你的帮助。

最佳答案

我不知道RGeo如何尝试实现change_column(有相关文档吗?),但这是不正确的,因为没有这样的multipolygon类型。
如果您可以从this answer直接访问PostgreSQL,请使用此DDL:

ALTER TABLE my_table
  ALTER COLUMN area_shape TYPE geometry(MultiPolygon,3785)
    USING ST_Multi(area_shape);

关于ruby-on-rails - 通过迁移的MultiPolygon列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23461009/

10-12 01:06