Phoenix framework/Elixir添加地理空间字段
我正在尝试使用包将地理空间字段添加到phoenix框架中。我想通过Ecto模型访问,因此我遵循了添加行的概述: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 如自述文件中所述。问题是,它并没有确切地指定在哪里添加它,所以我
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年这仍然有效吗?对我来说不起作用。