我无法创建我的Phoenix项目。希望就如何修复它提供一些建议。

设置详细信息:

  • Ubuntu 16.04.4 LTS
  • Erlang / OTP 21 [erts-10.1] [源代码] [64位]
    [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
  • Elixir 1.7.3(已编译
    使用Erlang / OTP 20)
  • Mix 1.7.3(与Erlang / OTP 20编译)
  • Ecto v3.0.0

  • 我正在按照Phoenix Up and Running制作应用程序。
    mix phx.new hello
    cd hello
    mix ecto.create
    

    最后一条命令给我:
     == Compilation error in file lib/hello/repo.ex ==
     ** (ArgumentError) adapter Ecto.Adapters.Postgres was not compiled, ensure it is correct and it is included as a project dependency
         lib/ecto/repo/supervisor.ex:71: Ecto.Repo.Supervisor.compile_config/2
         lib/hello/repo.ex:2: (module)
         (stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
         (elixir) lib/kernel/parallel_compiler.ex:206: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/6
    

    我已经安装了postgres。我有postgres super 用户。

    最佳答案

    您的依赖项中是否有phoenix_ecto 3.5.0?在我弄清根本问题之前,降级到3.4.0对我来说是一个临时修复程序。

    强制降级:

  • 运行mix deps.clean --all
  • 删除您的mix.lock文件
  • 更新您的mix.exs文件,以限制phoenix_ecto版本。找到合适的行并替换为:{:phoenix_ecto, ">= 3.2.0 and < 3.5.0"},
  • 运行mix deps.get

  • 或者,如果您刚开始使用Phoenix,则可以使用1.4版进行学习,该版本将很快发布,并且没有此问题。

    首先删除您当前的本地Phoenix存档:
    mix archive.uninstall phx_new
    然后,要安装最新的开发版本,请按照https://github.com/phoenixframework/phoenix/blob/master/installer/README.md中的说明进行操作

    关于postgresql - 适配器Ecto.Adapters.Postgres未编译,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53045717/

    10-13 06:13