I have had success with this even recently but Im missing something now.
I am simply attempting to connect with a remote database on a new phoenix installation.
The service is not called “postgres” buy my_app is still looking for a db named Postgres apparently.
replacing the primary database connection, not adding a second.
same result using both a clean install, or a template from fullstackphoenix.
I followed this guide
https://hexdocs.pm/phoenix/deployment.html
among other guides for database migrations such as:
https://hexdocs.pm/ecto_sql/Ecto.Migration.html
I configure the adapter in config/devs.ex file with the appropriate credentials
username: "NOT_postgres",
password: "NOT_postgres",
hostname: "remote_connection-pool_digital-ocean.com",
database: "NOT_postgres",
port: "25061",
ssl: true,
ssl_opts: [verify: :verify_peer, cacertfile: 'ca-certificate.crt'],
stacktrace: true,
show_sensitive_data_on_connection_error: true,
pool_size: 10
Then any mix ecto gets this error
11:19:58.852 [error] GenServer #PID<0.398.0> terminating
** (Postgrex.Error) FATAL 08P01 (protocol_violation) no such database: postgres
(db_connection 2.4.2) lib/db_connection/connection.ex:100: DBConnection.Connection.connect/2
(connection 1.1.0) lib/connection.ex:622: Connection.enter_connect/5
(stdlib 4.1.1) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: nil
State: Postgrex.Protocol
I am wondering where else I need to declare db credentials. Or if there is something else simple I am forgetting.
I have tried adding credential in config/test.exs but it didn’t make a difference. and considered add to runtime.exs, but runtime.exs loads database_url from system environment exports. which are set.
Any assistance would be of value. Thanks…