When manually creating a Postgres database for a Phoenix project (e.g. in production), do I need to customize any of the database settings?

I’m setting up a PostgreSQL database in production for a Phoenix project. When doing a similar task for a Django project, the docs specify that I need to make a few adjustments to the default database settings (client_encoding, default_transaction_isolation, and timezone).

I’m just wondering if I need to do these sort of settings changes when manually creating a run-of-the-mill Phoenix database in Postgres, or do I just need to create the database and assume the defaults will work just fine?

Looking through my notes on when I deployed my app, I did not do any extra adjustments to the default database that’s made with createdb and it’s been working just fine thus far.

The only suggestion I have is to use peer authentication depending on your infrastructure plan.

3 Likes

If the DB is in a VM that you have full access to, increase the shared buffers RAM value. It does help performance.

Outside of that though, no. Out of the box config is good enough for 98% of the projects.

4 Likes