ecto usage in example projects?

Hi all! I’m new to elixir and phoenix and am trying to run this project:
https://github.com/chvanikoff/reph2

I want to convert an existing react app (or at least the rest api for the database to elixir but every example project I find on Github has some sort or error regarding ecto. I’ve tried all the examples posted in https://elixirforum.com/t/user-authentication-in-phoenix/118/81 but encounter similar errors to this:
could not compile dependency :phoenix_ecto, "mix compile" failed. You can recompile this dependency with "mix deps.compile phoenix_ecto", update it with "mix deps.update phoenix_ecto" or clean it with "mix deps.clean phoenix_ecto"

I’ve tried cleaning all my mix packages as well as mix.update --all.

Are all these projects just dead or am I missing something?

Also if anyone has suggestions of a working example of a elixir server with authentication (ideally with react as well) please do hesitate to share.

Thank you to the elixir developers I can see the magic in the bottle but still feel like I’m taping on the glass.

Thank you for any/all suggestions/ideas/setting me straight

Even though I can compile the dependencies on my system (Arch linux), it fails currently with the router and prints out about a billion of warnings.

Also the particular example you posted is written in phoenix 1.1, so it will give you a false sense of how things are done today.

You should search for examples that use a more current phoenix (1.3).

Sadly I can’t give you any links to small example projects, but only to a fully grown application: The hex.pm website.

1 Like

This one seems to work, I’ve just tested it locally https://github.com/chernyshof/react-phoenix-users-boilerplate and it uses Phoenix 1.3

One thing to note is that you’d have to use admin@admin.com and not just admin as stated in the readme in order to log in.

4 Likes

Here is a toy project of mine https://github.com/voger/GQLardian
Very incomplete, very abandoned, very learning toy but fairly new. A very stupid blog app that I abandoned when doing permissions. No react. Just absinthe, guardian and off course the Ecto you are interested at.

1 Like

Thank you all for your insightful responses. They all provide great references to study.

@yurko were you able to get this one running? I’ve tried but am receiving this error when I follow the install instructions on their README:
08:31:47.792 [error] GenServer #PID<0.4925.0> terminating ** (DBConnection.ConnectionError) tcp connect (localhost:5432): connection refused - :econnrefused (db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2 (connection) lib/connection.ex:622: Connection.enter_connect/5 (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3 Last message: nil State: Postgrex.Protocol ** (Mix) The database for Boilerplate.Repo couldn't be created: an exception was raised: ** (DBConnection.ConnectionError) tcp connect (localhost:5432): connection refused - :econnrefused (db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2 (connection) lib/connection.ex:622: Connection.enter_connect/5 (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3

This looks to me like postgres is not installed. Am I correct in assuming I should first install posgres on my machine (OSx 10.13) then retry the install? Also am I safe using the postgres 10.4 or should I use a older version?

Regardless you have already been more then helpful thank you very much.

The problem was that postgres had to be installed. However now that I have done this I am encountering a new error: `** (Mix) The database for Boilerplate.Repo couldn’t be created: FATAL 28P01 (invalid_password): password authentication failed for user “postgres”

09:41:21.773 [error] GenServer #PID<0.4925.0> terminating
** (Postgrex.Error) FATAL 28P01 (invalid_password): password authentication failed for user “postgres”
(db_connection) lib/db_connection/connection.ex:148: DBConnection.Connection.connect/2
(connection) lib/connection.ex:622: Connection.enter_connect/5
(stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
Last message: nil
State: Postgrex.Protocol`

when running mix ecto.create

Is there a specific postgres password i need to use so that it will be compatible with ecto? or does it have to be blank? although that seems unsecure…

Regardless thank you again for all the help and while I will greatly appreciate replies I understand your all very busy so I’m mostly using this thread to think through the errors I encounter and document results for others to reference.

Thanks

Yes, you need postgres and then you need to set up the connection, edit your dev config and set up username, password etc, s. https://github.com/chernyshof/react-phoenix-users-boilerplate/blob/master/config/dev.exs#L58-L60

Your local database doesn’t have to be secure unless it’s open to the outside world. If you want to set the password you can do something like this:

sudo -u postgres psql
ALTER USER "postgres" WITH PASSWORD 'new_password';
4 Likes

@yurko Thank you so much this worked. For others All I had to do was change the database name from ‘boilerplate_dev’ to ‘postgres’ this is the name of the default database that was created when I installed postgres with the enterpriseDB installer.

Thank you all again for helping.

This doesn’t seem right. When you run mix ecto.create it should create that database for you.

@voger your correct. I was able to duplicate my project and use ‘boilerplate_dev’ as database name. please ignore the previous version of this reply as that error was simply due to a node.js server interfering with phoenix.