Начиная с Ecto 3.0, Ecto.Adapters.Postgres
не поставляется с Ecto по умолчанию, поэтому необходимо добавить ecto_sql
к зависимостям Mixfile:
###########
# mix.exs #
###########
defp deps do
[
# (...)
{:ecto_sql, "~> 3.0-rc.1"},
{:postgrex, ">= 0.0.0"}
]
end
# Feeling skittish about dependencies,
# I usually do this instead of simply
# doing `mix deps.get`:
$ mix deps.clean --all
$ mix do deps.get, compile
( Дерево Ecto github repo v3.0.0 рекомендует {:ecto_sql, "~> 3.0"}
, но последний выпуск - 3.0.0-rc.1
), поэтому он не будет работать на данный момент. Интересно, что в репо нет тега 3.0.0-rc.1
, но документация уже ссылается на это, и он также работает с mix
. )
... или, как Юфренд рекомендует в своем ответе , если вы начинаете новый проект Phoenix, используйте пакеты <1.4.0. </p>
См. Серию Хосе Валима «Проникновение в Ecto 3.0» , где в первом посте объясняются принципиальные изменения в Ecto 3.0:
Разделить Ecto на ecto
и ecto_sql
Ecto 3.0 будет разбит на два репозитория: ecto
и ecto_sql
.
После Ecto 2.0 возросло число разработчиков и команд.
использование Ecto для отображения и проверки данных, без необходимости
база данных. Однако добавление Ecto в ваше приложение все равно принесет
много багажа SQL, таких как адаптеры, песочницы и миграции,
который многие считают смешанным сообщением.
В Ecto 3.0 мы переместим все адаптеры SQL в отдельный
хранилище и Ecto сосредоточатся на четырех строительных блоках: схемах,
changesets, запросы и репо. Вы можете увидеть обсуждение в
трекер проблем.
Если вы используете Ecto с базой данных SQL, переход на Ecto 3.0 будет
быть очень простым. Вместо:
{:ecto, "~> 2.2"}
Вы должны перечислить:
{:ecto_sql, "~> 3.0"}
И если вы используете Ecto только для манипулирования данными, но без
доступ к базе данных, то это просто вопрос повышения его версии.
Вот и все!
* * ОБНОВЛЕНИЕ тысячи сорок-девять
По какой-то причине мне также нужно было добавить {:plug_cowboy, "~> 1.0"}
к зависимостям Mixfile при обновлении проекта Phoenix 1.3, и все это начало работать.