Подтвердить что ты не робот

Странная ошибка при использовании Ecto 2.0.0-rc.0 и выполнение ecto.migrate

Сегодня, как часто, я пытался сделать mix ecto.migrate в своем приложении Phoenix и неожиданно обнаружил следующую ошибку:

warning: could not find repositories for application :adah.

You can avoid this warning by passing the -r flag or by setting the
repositories managed by this application in your config files:

  config :adah, ecto_repos: [...]

The configuration may be an empty list if it does not define any repo.

** (Protocol.UndefinedError) protocol Enumerable not implemented for :ok
(elixir) lib/enum.ex:1: Enumerable.impl_for!/1
(elixir) lib/enum.ex:116: Enumerable.reduce/3
(elixir) lib/enum.ex:1486: Enum.reduce/3
(elixir) lib/enum.ex:609: Enum.each/2
(mix) lib/mix/cli.ex:58: Mix.CLI.run_task/2

Мои депо:

phoenix_ecto: 3.0.0-rc.0
ecto: 2.0.0-rc.0
...

Мои конфигурационные файлы имеют следующие строки:

dev.ex:

# Configure your database
 config :adah, Adah.Repo,
   adapter: Ecto.Adapters.Postgres,
   username: "postgres",
   password: "postgres",
   database: "adah_dev",
   hostname: "localhost",
   pool_size: 10

test.ex: 

# Configure your database
 config :adah, Adah.Repo,
 adapter: Ecto.Adapters.Postgres,
 username: System.get_env("POSTGRES_USER") || "postgres",
 password: System.get_env("POSTGRES_PASSWORD") || "postgres",
 database: System.get_env("POSTGRES_DB") || "adah_test",
 hostname: System.get_env("POSTGRES_HOST") || "localhost",
 pool: Ecto.Adapters.SQL.Sandbox

И у меня таких ошибок нет при запуске тестов или обслуживании страниц в среде dev, только когда я запускаю mix ecto.migrate.

Итак... что я должен добавить в свои файлы конфигурации или перейти к значку -r?

UPDATE: Я считаю, что есть ошибка, и она соответствует пакетам phoenix-3.0.0 -r c.0 или ecto-2.0.0 -r c.0, потому что когда я использую {: ecto, "== 2.0. 0-beta.2 ",: phoenix_ecto," 3.0.0-beta.2 "}, все работает так, как ожидалось.

4b9b3361

Ответ 1

Добавьте это в config/config.ex

config :adah, :ecto_repos, [Adah.Repo]