vira
Issue with Understanding Phoenix Project Deployment
Hi friends,
I am very new to Phoenix and PostgreSQL database. I am trying to deploy a simple very basic web app on fly.io to try to understand the deployment process so that I can adapt to my existing projects but I am very lost and confused. Here’s what I did.
mix phx.new Testing --app testing123
cd Testing
mix ecto.create
And then I used fly launch and fly deploy command. I got the following errors.
** (RuntimeError) environment variable DATABASE_URL is missing.
For example: ecto://USER:PASS@HOST/DATABASE
What I don’t understand here is the DATABASE_URL. How do I construct one?
When I do brew services list, I have postgresql@15 running already. If I do, psql testing123_dev and do \conninfo, I got "You are connected to database “testing123_dev” as user “sawwerakyawkyaw” via socket in “/tmp” at port “5432”.
Does that mean my DATABASE_URL is ecto://sawwerakyawkyaw:PASS@localhost:5432/testing123_dev?
Also, for each Phoenix project that I create, am I going to need unique DATABASE_URL for each one?
I am very lost and confused. If you can answer my questions or you know any resources to learn more about understanding postgres databases and/ or how to properly deploy, I would really appreciate it.
Many thanks.
Trending in Questions
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #elixirconf-us
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #hex
- #performance










First 2 of 2 Posts
garrison
See the docs for Ecto URLs.
You have it running on your personal machine. If you are deploying an app to a service (Flyio) then you probably want a database running on that service too. They have a few different options, so consult their docs. I think the easy one was their integration with supabase, but they are working on their own managed postgres too. I would avoid their old “HA Postgres” non-managed offering (if it still exists), given it sounds like you’re new to this.
That depends on if you want a unique database for each one. Most likely you would use a separate database for each project, but Postgres can host multiple databases on the same server (confusingly called a “cluster”).
If you host multiple databases on the same server, you will probably have a unique user/database/pass for each one but the same host/port.
vira
Hey! Thank you so much. You have enlightened me about the deployment process. I actually start reading the fly.io documentation and I start to understand a lot things. This is just the beginning. People like you make the learning process much more fun!