Hi,
I have set up my app to use Bolt sips with my hosted neo4j db on graphene and it all works locally. I have been able to work with my hosted db in my dev environment, adding and accessing data. However, when I went to deploy to heroku i get the following error:
supervisors expect the child to be a module, a {module, arg} tuple or a map with the child specification, got: {:bolt_sips_pool, {:poolboy, :start_link, [[name: {:local, :bolt_sips_pool}, worker_module: Bolt.Sips.Connection, size: 5, max_overflow: 2, strategy: :fifo], [socket: :ssl, port: 24786, hostname: 'hobby-mnmmmgoodoangbke.dbs.graphenedb.com', retry_linear_backoff: [delay: 150, factor: 2, tries: 3], with_etls: false, max_overflow: 2, pool_size: 5, basic_auth: [username: \\"dev\\", password: \\"password\\"], url: \\"bolt://hobby-mnmmmgoodoangbke.dbs.graphenedb.com:24786\\", ssl: true, timeout: 15
my set up is as follows:
children in supervisor tree
def start(_type, _args) do
import Supervisor.Spec
children = [
supervisor(MyApp.Repo, []),
supervisor(MyAppWeb.Endpoint, []),
{Bolt.Sips, Application.get_env(:bolt_sips, Bolt)}
]
opts = [strategy: :one_for_one, name: MyApp.Supervisor]
Supervisor.start_link(children, opts)
end
mix.exs:
def application do
[
mod: {MyApp.Application, []},
extra_applications: [:logger, :runtime_tools, :bolt_sips]
]
end
defp deps do
[
{:distillery, "~> 1.5.3"},
{:phoenix, "~> 1.3.3"},
{:phoenix_pubsub, "~> 1.0"},
{:phoenix_ecto, "~> 3.2"},
{:postgrex, ">= 0.0.0"},
{:phoenix_html, "~> 2.10"},
{:phoenix_live_reload, "~> 1.0", only: :dev},
{:gettext, "~> 0.11"},
{:cowboy, "~> 1.0"},
{:elasticsearch, "~> 0.4.1"},
{:elastix, ">= 0.0.0"},
{:bolt_sips, "~> 0.4.12"},
{:retry, "~> 0.8.0", override: true},
{:httpoison, ">= 1.2.0", override: true},
{:neo4j_sips, ">= 0.2.18"}
]
end
bolt sips config in config.exs:
config :bolt_sips, Bolt,
basic_auth: [
username: "dev",
password: System.get_env("GRAPHENEDB_TEST_PASS")
],
url: System.get_env("GRAPHENEDB_TEST_URL"),
ssl: true,
timeout: 15_000
I also tried this in my supervisor tree.
worker(Bolt.Sips, [Application.get_env(:bolt_sips, Bolt)])
supervisor(Bolt.Sips, [Application.get_env(:bolt_sips, Bolt)])
in stead of
{Bolt.Sips, Application.get_env(:bolt_sips, Bolt)}
What am I missing here?