【发布时间】:2016-11-28 18:25:27
【问题描述】:
我想为我的 Phoenix 应用使用特定的 Postgres 架构。
我尝试通过Ecto.Repo.after_connect/1 回调来实现这一点,但它似乎在超时之前递归地创建了大约 10 次新的数据库连接。
这是我的回购文件:
defmodule MyApp.Repo do
use Ecto.Repo, otp_app: :my_app
use Scrivener, page_size: 20
def after_connect(_pid) do
IO.puts "after_connect"
Ecto.Adapters.SQL.query(MyApp.Repo, "SET search_path TO 'my_app';", [])
end
end
【问题讨论】:
-
如果你想永久这样做,你可以使用
alter user set ...更改用户的搜索路径 -
我不想。我的目的是在 3 个不同的应用程序之间共享一个 Heroku Postgres 数据库(每个应用程序都有一个架构)
-
那你为什么不创建三个不同的用户,每个用户都有特定的模式作为他们的默认搜索路径?
-
因为我做不到。 Heroku 为单个用户提供单个数据库。
-
我不认为你的用例很好,但问题仍然有效。
标签: postgresql elixir phoenix-framework ecto