Phoenix + ExMachina错误

plu*_*ism 4 elixir web phoenix-framework

我正在按照本教程进行操作,在添加此代码和角色Factory之后,我收到以下错误:

15:09:08.808 [错误] GenServer #PID <0.245.0>终止**(UndefinedFunctionError)函数Ecto.Adapters.SQL.begin_test_transaction/1未定义或私有.你是说其中一个:

  * in_transaction?/1

(ecto) Ecto.Adapters.SQL.begin_test_transaction(Pxblog.Repo)
(elixir) src/elixir_compiler.erl:125: :elixir_compiler.dispatch_loaded/6
(elixir) src/elixir_lexical.erl:17: :elixir_lexical.run/3
(elixir) src/elixir_compiler.erl:30: :elixir_compiler.quoted/3
(elixir) lib/code.ex:363: Code.require_file/2
(elixir) lib/enum.ex:651: Enum."-each/2-lists^foreach/1-0-"/2
(elixir) lib/enum.ex:651: Enum.each/2
(mix) lib/mix/tasks/test.ex:216: Mix.Tasks.Test.run/1
Run Code Online (Sandbox Code Playgroud)

这是我的test_helper.exs文件:

{:ok, _} = Application.ensure_all_started(:ex_machina)
ExUnit.start

Mix.Task.run "ecto.create", ~w(-r Pxblog.Repo --quiet)
Mix.Task.run "ecto.migrate", ~w(-r Pxblog.Repo --quiet)
Ecto.Adapters.SQL.begin_test_transaction(Pxblog.Repo)
Run Code Online (Sandbox Code Playgroud)

可能有什么不对?我已经更新了所有的依赖项mix deps.update --all.

提前致谢!

mic*_*ala 6

看起来您正在尝试按照已安装Ecto 2.0的Ecto 1.1教程进行操作,这不是完全向后兼容的.您可以降级您的ecto版本,查找更新的教程或探索Ecto 2中的更改,并调整您当前使用的教程 - http://blog.plataformatec.com.br/2016/04/ecto-2 -0-0-rc-is-out /应该给你一个良好的开端.