Phoenix framework/Elixir添加地理空间字段

Phoenix framework/Elixir添加地理空间字段,elixir,geospatial,phoenix-framework,Elixir,Geospatial,Phoenix Framework,我正在尝试使用包将地理空间字段添加到phoenix框架中。我想通过Ecto模型访问,因此我遵循了添加行的概述: Postgrex.Types.define( MyApp.PostgresTypes, [Geo.PostGIS.Extension] ++ Ecto.Adapters.Postgres.extensions(), json: Poison) types: MyApp.PostgresTypes 如自述文件中所述。问题是,它并没有确切地指定在哪里添加它,所以我

我正在尝试使用包将地理空间字段添加到phoenix框架中。我想通过Ecto模型访问,因此我遵循了添加行的概述:

Postgrex.Types.define(
  MyApp.PostgresTypes,
  [Geo.PostGIS.Extension] ++ 
    Ecto.Adapters.Postgres.extensions(),
  json: Poison)
types: MyApp.PostgresTypes
如自述文件中所述。问题是,它并没有确切地指定在哪里添加它,所以我将它添加到config/dev.exs

然后我添加了一行:

Postgrex.Types.define(
  MyApp.PostgresTypes,
  [Geo.PostGIS.Extension] ++ 
    Ecto.Adapters.Postgres.extensions(),
  json: Poison)
types: MyApp.PostgresTypes
我的开发人员repo配置文件
config/dev.exs
,如指定

然后我得到一个错误,即
Postgrex.Types.define
extro.Adapters.Postgres.extensions
函数不存在(因为据报道模块不可用)

然后我尝试在
lib/myapp/myapp.ex
中添加以下行,因为我怀疑这与进程初始化有关

Postgrex.Types.define(
  MyApp.PostgresTypes,
  [Geo.PostGIS.Extension] ++ 
     Ecto.Adapters.Postgres.extensions(),
  json: Poison)
但是,当我添加更多字段时,请使用mix-exto.migrate进行另一次迁移, 我得到一个错误:

函数
Jobflo.PostgresTypes.find/2
未定义(模块
Jobflo.PostgresTypes
不可用)

我认为这不应该如此困难,我怀疑我犯了一个明显的错误。任何熟悉凤凰城地理信息的人都将不胜感激。
谢谢。

几个月前升级geo时,我发现这有点让人困惑

创建一个名为
lib/postgres\u types.ex
的文件,其中包含以下内容:

Postgrex.Types.define(
  Myapp.PostgresTypes,
  [Geo.PostGIS.Extension] ++ Ecto.Adapters.Postgres.extensions(),
  json: Poison
)
在您的配置文件中(在我的例子中是,
“#{Mix.env}.exs”
)确保您的配置如下所示:

config :myapp, Myapp.Repo,
  adapter: Ecto.Adapters.Postgres,
  types:   Myapp.PostgresTypes,
  username: "jbloggs",
  password: "abc123",
  database: "api",
  hostname: "db_hostname.com",
  pool_size: 10

我希望这对您有所帮助!

在此处发布相关代码;请不要将您的帖子链接到github。非常感谢!这是有文档记录的还是长生不老药惯例?Cheers@Simon两者都不是——都有文档记录,只是文档对我来说不是很清楚(我想你也是!)嗨。2019年这仍然有效吗?对我来说不起作用。