Skip to content

PostgreSQL - Environment Setup

Setting up a proper development environment is the first step to working with PostgreSQL. The modern standard for creating consistent, isolated, and cross-platform development environments is using containers. We highly recommend using Docker for this purpose.

Section titled “Recommended Method: Docker and Docker Compose”

Docker allows you to run PostgreSQL in a lightweight, isolated container, without affecting your host machine. Docker Compose lets you define this setup in a simple configuration file. This method works identically on Windows, macOS, and Linux.

Step 1: Install Docker Desktop.

Download and install Docker Desktop for your operating system from the official Docker website.

Step 2: Create a docker-compose.yml file.

In your project directory, create a file named docker-compose.yml with the following content:

version: '3.8'
services:
db:
image: postgres:15 # Specify a recent, stable version
restart: always
environment:
- POSTGRES_USER=myuser
- POSTGRES_PASSWORD=mypassword
- POSTGRES_DB=mydb
ports:
- '5432:5432' # Map container port 5432 to host port 5432
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
# This creates a named volume to persist data across container restarts

Step 3: Start the PostgreSQL container.

Open a terminal in the same directory as your docker-compose.yml file and run:

# This will download the image (if needed) and start the container in the background.
docker-compose up -d

Your PostgreSQL server is now running! It is listening on localhost:5432.

Step 4: Connect to the database.

You can connect using any PostgreSQL client, such as the command-line tool psql or a graphical tool like DBeaver or pgAdmin. The connection string or parameters will be:

  • Host: localhost
  • Port: 5432
  • Database: mydb
  • User: myuser
  • Password: mypassword

To use psql from within the container (if you don’t have it installed locally):

docker exec -it <container_name_or_id> psql -U myuser -d mydb

Alternative: Native Installation via Package Managers

Section titled “Alternative: Native Installation via Package Managers”

If you prefer a native installation, using your operating system’s package manager is the best approach.

sudo apt update
sudo apt install postgresql postgresql-client
brew install postgresql

For Windows, the official installer provided by EDB is the recommended native method. You can find it on the PostgreSQL official downloads page. The installer will guide you through setting a password for the postgres superuser and initialize the database.

  • psql: The standard command-line interface for PostgreSQL. It’s powerful, scriptable, and an essential tool for any PostgreSQL developer to learn.
  • pgAdmin: A popular open-source graphical user interface (GUI) for managing PostgreSQL. It provides a visual way to view data, manage objects, and run queries. It’s often bundled with native installers.
  • DBeaver: Another excellent, free, and multi-platform database tool that supports PostgreSQL along with many other databases.

With your environment set up, you are now ready to start creating tables and interacting with your PostgreSQL database.