2017-03-27 22 views
2

我可以看到,Postgrex lib支持postgreSQL的point類型,但我無法弄清楚如何在模型中使用它。我可以在指定遷移point類型列,但是當我在這樣的模式指定:如何使用PostgreSQL在Ecto中使用點列類型

schema "something" do 
    field :position, :point 
end 

我得到** (ArgumentError) invalid or unknown type :point for field :position。我應該做些什麼才能使它工作?

+3

我認爲你需要使用第三方庫像[地理](https://github.com/bryanjos/geo)爲這個。例如,該庫中的Geo.Point實現了Ecto.Type行爲:https://github.com/bryanjos/geo/blob/master/lib/geo/point.ex。 – Dogbert

+0

@Dogbert我認爲你應該發佈這個答案。 –

+0

是的,@Dogbert可以隨意發佈它作爲答案,我會接受它! –

回答

2

Ecto不包含任何Ecto.Type實現模塊,用於PostgreSQL中的point數據類型。您可以使用Ecto.Type行爲來定義自己的模塊,也可以使用像geo這樣的庫,其中包括Geo.Point,其中implements the Ecto.Type behavior

隨着geo,您的架構看起來是這樣的:

schema "something" do 
    field :position, Geo.Point 
end 
相關問題