如何在Elixir中为postgres连接设置application_name

时间:2017-08-28 19:33:22

标签: elixir ecto

config.exs中的以下代码会将postgresql中的application_name设置为" myapp"。如何使用Elixir节点名称? (在这里使用Kernel.node会导致参数错误)

config :db, DB.Repo,
  adapter: Ecto.Adapters.Postgres,
  database: "ahv2",
  username: "troy",
  password: "pass",
  hostname: "localhost",
  parameters: [
    {:application_name, "myapp"}
  ]

1 个答案:

答案 0 :(得分:2)

您可以在v2.1.0中使用添加到Ecto的init/2回调。以下代码应该可以工作(但我还没有测试过)。您需要在Repo

之后将其添加到use Ecto.Repo, ...模块中
def init(_, config) do
  {:ok, put_in(config, [:parameters, :application_name], Node.self |> to_string)}
end