chanphiromsok

chanphiromsok

(UndefinedFunctionError) function CAStore.file_path/0 is undefined (module CAStore is not available)

Hello guys I cant connect to MySQL using ecto_sql and myxql connect to mysql at planetscale

I have config file dev.exs below

config :myproject, Myproject.Repo,
  username: "asdf",
  password: "asdf",
  hostname: "hostname,
  database: "wbdev-db",
  ssl: true,
  ssl_opts: [
    verify: :verify_peer,
    cacertfile: CAStore.file_path(),
    server_name_indication: String.to_charlist("hostname"),
    customize_hostname_check: [
      match_fun: :public_key.pkix_verify_hostname_match_fun(:https)
    ]
  ],
  stacktrace: true,
  show_sensitive_data_on_connection_error: true,
  pool_size: 10

Error message

** (UndefinedFunctionError) function CAStore.file_path/0 is undefined (module CAStore is not available)
    CAStore.file_path()
    /Users/macbookpro/Documents/myproject/config/dev.exs:12: (file)
    /Users/macbookpro/Documents/myproject/config/config.exs:64: (file)
    (stdlib 4.2) erl_eval.erl:748: :erl_eval.do_apply/7
    (stdlib 4.2) erl_eval.erl:961: :erl_eval.expr_list/7
    (stdlib 4.2) erl_eval.erl:290: :erl_eval.expr/6
    (stdlib 4.2) erl_eval.erl:282: :erl_eval.expr/6

CAStore is undefined if I run it in Supervisor tree it work fine MyXQL.start_link(db_config)

Marked As Solved

codeanpeace

codeanpeace

Just a heads up, that planetscale connection example has the configuration/connection code in a mix task where the castore dependency is available. Putting that code in dev.exs which gets called by config.exs during build time results in an error since dependencies are not available then.

To configure and connect during build time, try specifying the file path directly rather than through CAStore.file_path(). To use CAStore.file_path(), try adding the configuration/connection code into runtime.exs which is read after dependencies are available.

Also Liked

codeanpeace

codeanpeace

What does your CAStore module look like? It might be a namespacing issue.

For example, if you have something like defmodule Myproject.CAStore, you’d need to alias it or use the full module name in your dev.exs.

# either add
alias Myproject.CAStore
# or use
Myproject.CAStore.file_path()
# instead of
CAStore.file_path()
codeanpeace

codeanpeace

Can you share your working application.ex and ca_store.ex?

wojtekmach

wojtekmach

Hex Core Team

Can you show your mix.exs? Do you have the :castore package in the deps?

Last Post!

chanphiromsok

chanphiromsok

Thanks you so much now I can connect to planet-scale

Where Next?

Popular in Questions Top

JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New

Other popular topics Top

Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

We're in Beta

About us Mission Statement