Phoenix + ExMachina错误

时间:2016-07-09 14:13:03

标签: web elixir phoenix-framework

我正在关注this tutorial并在添加this code和角色工厂后,我收到以下错误:

  

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

这是我的 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)

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

提前致谢!

1 个答案:

答案 0 :(得分:6)

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