gothinkster / elixir-phoenix-realworld-example-app

Exemplary real world application built with Elixir + Phoenix
https://realworld.io
MIT License
892 stars 140 forks source link

Postgres error `role "postgres" does not exist` on running `mix ecto.create` #45

Open bartvanderwal opened 4 years ago

bartvanderwal commented 4 years ago

I'm a postgres noob and when following the README.md to run this locally on my macbook. But on running the mix ecto.create command I get below error about a role "postgres" does not exist.

I have installed postgres using brew (and started it using pg_ctl -D /usr/local/var/postgres start as brew suggests after successful install).

14:37:22.569 [error] GenServer #PID<0.516.0> terminating
** (Postgrex.Error) FATAL 28000 (invalid_authorization_specification): role "postgres" does not exist
    (db_connection 1.1.3) lib/db_connection/connection.ex:163: DBConnection.Connection.connect/2
    (connection 1.0.4) lib/connection.ex:622: Connection.enter_connect/5
    (stdlib 3.13.2) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
Last message: nil
State: Postgrex.Protocol
** (Mix) The database for RealWorld.Repo couldn't be created: FATAL 28000 (invalid_authorization_specification): role "postgres" does not exist
bartvanderwal commented 4 years ago

I managed to fix this issue by changing the value of the username setting in the copied config/dev.exs file (step 2 of the install. I changed it from postgres to my macos username (which apparently is the default on macOS after install, as mentioned I'm a postgres noob, so took some googling). You should change the password as well (the default password is empty so set password: "",).

I also noted that the setting in the react-redux version of the front-end is called API_ROOT instead of API_URL as the README.md mentions. This might change between implementations; but maybe you could mention both.

I hope this helps others. As mentioned in #42 the docs could be more helpful :smile:. Would you accept a pull request of your README.md with these fixes this? I'd like to save others this half hour of their live :smile.