2017-03-20 9 views
0

私は私のmix.exsファイルは次のようになりますフェニックスフレームワークをMongodbと連携させるには?

mix phoenix.new helloworld --database mongodb 

始めるために私は、次のコマンドを実行してデータベースとしてのMongoDBと鳳凰のフレームワークを使用しようとしています:

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を実行すると、Iを次のエラーが表示されます。

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} 

どうすればよいですか?

答えて

1

ここでの問題は、mongodb_ectoがかなりの期間更新されていないため、Phoenixが現在使用しているEcto(v2.0以降)の新しいバージョンをサポートしていないことです。これにより、依存関係を解決できないため、mix deps.getが失敗します。

mongodb_ectoの代わりにMongoDB driver for Elixirを直接使用し、PhoenixアプリケーションでEctoと動作するように設定することをお勧めします。ここではあなたがそれを行うことができます方法を説明ブログの記事は、次のとおりです。

Phoenix with Ecto and MongoDB


Ecto 2ためMongoDBサポートを提供しています別のライブラリがあるのですが、それはまだプロジェクトのgithubのリポジトリにbetaとしてリストされています。

eyrmedical/mongo_ecto

+0

Ectoを2.0以下にダウングレードするとどうなりますか? –

+0

新しい機能がたくさん失われ、Ectoで動作する他のライブラリの最新バージョンでは正しく動作しない可能性があります。 [Ectoの変更履歴](https://github.com/elixir-ecto/ecto/blob/master/CHANGELOG.md)を参照してください。 – Sheharyar

関連する問題