首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Mongodb运行菲尼克斯框架?

如何使用Mongodb运行菲尼克斯框架?
EN

Stack Overflow用户
提问于 2017-03-20 04:45:47
回答 1查看 3.2K关注 0票数 2

我正在尝试使用带有mongodb的菲尼克斯框架作为数据库,所以我运行下面的命令来开始

代码语言:javascript
复制
mix phoenix.new helloworld --database mongodb

我的mix.exs文件如下所示:

代码语言:javascript
复制
defp deps do
  [{:phoenix, "~> 1.2.1"},
   {:phoenix_pubsub, "~> 1.0"},
   {:phoenix_ecto, "~> 3.0"},
   {:mongodb_ecto, ">= 0.0.0"},
   {:phoenix_html, "~> 2.6"},
   {:phoenix_live_reload, "~> 1.0", only: :dev},
   {:gettext, "~> 0.11"},
   {:cowboy, "~> 1.0"}]
end

但是,当我运行mix deps.get时,我会得到以下错误:

代码语言:javascript
复制
Failed to use "ecto" (versions 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.1.4) because
  mongodb_ecto (versions 0.1.0 to 0.1.2) requires ~> 1.0
  phoenix_ecto (version 3.0.1) requires ~> 2.0


Failed to use "ecto" (versions 2.0.0-beta.0 to 2.0.6) because
  mongodb_ecto (versions 0.1.0 to 0.1.2) requires ~> 1.0
  phoenix_ecto (version 3.0.0) requires ~> 2.0.0-rc


Failed to use "ecto" (version 2.0.6) because
  mongodb_ecto (versions 0.1.3 to 0.1.5) requires ~> 1.0.0
  phoenix_ecto (version 3.0.0) requires ~> 2.0.0-rc


Failed to use "ecto" (versions 2.1.0 to 2.1.4) because
  mongodb_ecto (versions 0.1.0 to 0.1.2) requires ~> 1.0
  phoenix_ecto (versions 3.1.0 to 3.2.3) requires ~> 2.1


Failed to use "ecto" (version 2.1.4) because
  mongodb_ecto (versions 0.1.3 to 0.1.5) requires ~> 1.0.0
  phoenix_ecto (version 3.0.1) requires ~> 2.0


Failed to use "ecto" (version 2.1.4) because
  mongodb_ecto (versions 0.1.3 to 0.1.5) requires ~> 1.0.0
  phoenix_ecto (versions 3.1.0 to 3.2.3) requires ~> 2.1

** (Mix) Hex dependency resolution failed, relax the version requirements of your dependencies or unlock them (by using mix deps.update or mix deps.unlock). If you are unable to resolve the conflicts you can try overriding with {:dependency, "~> 1.0", override: true}

我该怎么开始?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-20 06:05:46

这里的问题是mongodb_ecto已经很久没有更新了,因此不支持Ecto的更新版本(v2.0和更高版本),这正是菲尼克斯目前正在使用的版本。这会导致mix deps.get失败,因为它无法解决依赖关系。

这里的一种解决方案是直接使用MongoDB driver for Elixir而不是mongodb_ecto,并将其配置为在菲尼克斯应用程序中使用Ecto。以下是一篇解释如何做到这一点的博客文章:

Phoenix with Ecto and MongoDB

还有一个库提供了MongoDBEcto 2的支持,但它仍然被列为项目的github存储库中的beta。您可以自己检查它是否符合您的使用标准:

eyrmedical/mongo

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42896009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档