安装 Addict 时出错 - 与 Ecto 的要求冲突

Error installing Addict - conflicting requirements on Ecto

我正在尝试安装 Addict,所以我将其最新版本(如十六进制)添加到 mix.ex:

{:addict, ">= 0.1.0"}

然后,我 运行 混合 reps.get 并得到一个错误:

为 ecto 上的冲突需求寻找替代方案

From mix.lock: 1.0.0
  From addict v0.1.0: ~> 0.9
** (Mix) Hex dependency resolution failed, relax the version requirements or unlock dependencies

我曾尝试在 mix.lock 中做到这一点,但无法克服,因为出现了此错误:

(Mix) Unknown package version ecto v0.0.9 in lockfile

克服这个问题的最佳方法是什么?

您可以设置依赖项以使用 override 标志覆盖:

defp deps do
  ...
   {:ecto, "~> 1.0.0", override: true},
   {:addict, "~> 0.1.0"},
  ...
end

来自docs

:override - if set to true the dependency will override any other definitions of itself by other dependencies

这意味着即使 addict 将版本设置为 0.9.0 - 仍将使用 1.0.0 版本。如果 addict 在 Ecto 中使用现在已弃用的函数,这可能会导致问题。