🚀Announcing Flightcontrol - Easily Deploy Blitz.js and Next.js to AWS 🚀
Back to Documentation Menu

Run Postgres Locally


Jump to a Topic

There are two basic ways to run Postgres locally:

  1. Natively on your computer
  2. Via Docker

Most people run Postgres natively without Docker as it's simpler, runs all the time in the background, and because Docker uses extra resources.

Natively on your computer

On Mac

There are two very popular options.

Install via Homebrew

  1. Make sure you have Homebrew installed.
  2. Run brew install postgresql
  3. Run brew services start postgresql

And that's it!

Install via Postgres.app

  1. Go to Postgres.app
  2. Download and install the app
  3. Open the app and click "initalize" to create a new server

And then you are good to go!

On Windows

The easiest way is to download and run the installer from the Postgres website.

Via Docker

  1. Create a docker-compose.yml file inside the root of your project with the following content
version: "3.7"

    image: postgres:latest
      - data:/var/lib/postgresql/data
    env_file: ./.env.local #Here we are using the already existing .env.local file
      - "5432:5432"

    image: postgres:latest
    env_file: ./.env.test.local
      - 5433:5432

  1. Inside your .env.local file add 3 new environment variables which are required by docker

Given these values, update DATABASE_URL in .env.local to something similar like postgresql://your_user:your_password@localhost:5432/your_database_name and in .env.test.local to postgresql://your_user:your_password@localhost:5433/your_database_name

Please note that test database is using port 5433 instead of 5432

  1. Modify your package.json to start the database before Blitz
"scripts": {
    "predev": "docker-compose up -d",
    "dev": "blitz dev",
  1. Start your new database and get it to the latest version of your migrations by running docker-compose up -d and blitz prisma migrate dev.

Idea for improving this page? Edit it on GitHub.