vira

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.

Marked As Solved

garrison

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.

Also Liked

vira

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!

Where Next?

Popular in Questions Top

_russellb
I want to try my hand at web scraping. What tools/libraries do I need to use. I’m hoping to turn this into something professional so don’...
New
Tee
can someone please explain to me how Enum.reduce works with maps
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
johnnyicon
Hi all, I’ve just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I’m trying to use Postgres...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
chensan
I have a User schema with a :from_id field set to type :string: defmodule TweetBot.Repo.Migrations.CreateUsers do use Ecto.Migration ...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

Other popular topics Top

aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 53690 245
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement