Ecto无法在项目中找到回购

时间:2017-10-26 18:42:55

标签: elixir ecto

我试图将Ecto添加到我的项目中。它是一个标准项目,没有用--s生成来添加主管。

到目前为止,我已经

mix ecto.gen.repo -r MyApp.Repo

生成它就好了。

在我config/dev.exs我有以下内容:

config :my_app,
  ecto_repos: [MyApp.Repo]

config :my_app, MyApp.Repo,
  adapter: Ecto.Adapters.Postgres,
  database: System.get_env("DATABASE_NAME"),
  username: System.get_env("DATABASE_USER"),
  password: System.get_env("DATABASE_PASSWORD"),
  hostname: System.get_env("DATABASE_HOST"),
  port: System.get_env("DATABASE_PORT")

myapp/repo.ex我有:

defmodule MyApp.Repo do
  use Ecto.Repo, otp_app: :my_app
end

然而,当我用

创建回购时
mix ecto.create --env=dev                                                                                                                                                                                    

我得到了

warning: could not find Ecto repos in any of the apps: [:my_app].

You can avoid this warning by passing the -r flag or by setting the
repositories managed by those applications in your config/config.exs:

config :eos, ecto_repos: [...]

如果我省略--env标志,也会发生这种情况。

我绝望地迷失了。这与入门指南一致(减去主管的东西,它没有表明是必需的),我在这里停滞不前。任何人都可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

Elixir默认只加载config/config.exs中的配置声明。许多项目(包括Phoenix)使用的<env>.exs约定要求将以下行添加到config/config.exs的末尾,以便加载正确的exs文件:

import_config "#{Mix.env}.exs"