首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我现在能把Ecto从2.1.6更新到2.2.2吗?怎么做?

我现在能把Ecto从2.1.6更新到2.2.2吗?怎么做?
EN

Stack Overflow用户
提问于 2017-09-09 22:37:40
回答 1查看 257关注 0票数 1

目前,我已经安装了ECTO2.1.6与菲尼克斯1.3框架。但是我发现Ecto有一个2.2.2版本,它支持:忽略变更集的操作类型,例如,如果没有任何更改,就可以丢弃它们。这个特性是我的项目所需要的,但不幸的是我无法更新Ecto。我试着混合deps.update ecto,混合deps.unlock ecto,混合deps.update ecto等等。

那怎么做呢?这也可能是不安全的?虽然在2.2版页上,我看到它专门用于修复but,所以不应该有中断的更改,但是谁知道呢。

编辑:从mix.exs文件中删除:

代码语言:javascript
复制
  defp deps do
    [
      {:phoenix, "~> 1.3.0", override: true},
      {:phoenix_pubsub, "~> 1.0"},
      {:phoenix_ecto, "~> 3.2"},
      {:postgrex, ">= 0.0.0"},
      {:phoenix_html, "~> 2.10"},
      {:phoenix_live_reload, "~> 1.0", only: :dev},
      {:gettext, "~> 0.11"},
      {:cowboy, "~> 1.0"},
      {:trans, "~> 2.0"},
      {:scrivener_ecto, "~> 1.0"},
      {:scrivener_html, "~> 1.7"},
      {:arc_ecto, "~> 0.7.0"},
      {:gen_smtp, "~> 0.11"},
      {:phoenix_swoosh, "~> 0.2"},     
      {:bodyguard, "~> 2.1"},     
      {:slugger, "~> 0.2"},     
      {:coherence, "~> 0.5"}      
    ]
  end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-10 07:52:43

将依赖项更新到其最新兼容的拼写器版本的通常方法是mix deps.update。在运行mix deps.update ecto时没有获得ECTO2.2的原因是,您的一个传递依赖项timex_ecto依赖Ecto ~> 2.1.0,而2.2.x~> 2.1.0不兼容。

代码语言:javascript
复制
├── coherence ~> 0.5 (Hex package)
│   ├── comeonin ~> 3.0 (Hex package)
│   │   └── elixir_make ~> 0.4 (Hex package)
│   ├── ecto ~> 2.0 (Hex package)
│   ├── gettext ~> 0.13 (Hex package)
│   ├── phoenix ~> 1.3 (Hex package)
│   ├── phoenix_html ~> 2.10 (Hex package)
│   ├── phoenix_swoosh ~> 0.2 (Hex package)
│   ├── timex ~> 3.1 (Hex package)
│   │   ├── combine ~> 0.7 (Hex package)
│   │   ├── gettext ~> 0.10 (Hex package)
│   │   └── tzdata ~> 0.1.8 or ~> 0.5 (Hex package)
│   │       └── hackney ~> 1.0 (Hex package)
│   ├── timex_ecto ~> 3.1 (Hex package)
│   │   ├── ecto ~> 2.1.0 (Hex package) <-- This
│   │   └── timex ~> 3.0 (Hex package)
│   └── uuid ~> 1.0 (Hex package)

正确的解决方法是要求timex_ecto的作者将依赖项更改为~> 2.1。在此之前,您可以在mix.exs中覆盖Ecto的版本。

代码语言:javascript
复制
defp deps do
  [
    ...,
    {:ecto, "~> 2.2", override: true}
  ]
end

然后运行mix deps.get

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46135722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档