我可以看到Postgrex
lib支持postgreSQL的point
类型,但我无法弄清楚如何在模型中使用它。我可以在迁移中为列指定point
类型,但是当我在模型中指定它时,如下所示:
schema "something" do
field :position, :point
end
我得到** (ArgumentError) invalid or unknown type :point for field :position
。我应该做些什么来使其发挥作用?
答案 0 :(得分:3)
Ecto不包含PostgreSQL中Ecto.Type
数据类型的任何point
实现模块。您可以为其定义自己的Ecto.Type
行为模块,也可以使用geo
这样的库,其中包含Geo.Point
implements the Ecto.Type
behavior。
使用geo
,您的架构看起来像:
schema "something" do
field :position, Geo.Point
end
答案 1 :(得分:0)
geo
库已将所有与Ecto相关的代码移到单独的库(see related pull request here)中。
要使用PostgreSQL Ecto.Type
数据类型的point
实现,请使用geo_postgis
库。