Django: Como configurar o banco de dados PostgreSQL (psycopg2)

Neste post veremos como realizar a configuração do banco de dados PostgreSQL utilizando o driver psycopg2 no framework web Django.

Nota: Testado no Django 3.2.

Nota: O framework Django 3.1 suporta PostgreSQL 9.5 ou superior.

psycopg2

Instalação

Para instalar o driver psycopg2:

pip install psycopg2-binary

Conexão

Configurando a variável DATABASES do arquivo settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'database_name',
        'USER': 'dbuser',
        'PASSWORD': '123456',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

Onde:

  • ENGINE: Driver será usado pelo Django.
  • NAME: Nome do database que será usado nessa conexão.
  • USER: Nome do usuário que irá utilizar o banco. Usuário deve ter as permissões necessária para manipular o banco.
  • PASSWORD: Senha do usuário.
  • HOST: IP ou nome do computador onde o banco de dados está sendo executado.
  • PORT: Porta que o banco de dados está utilizando. O padrão é 5432.

Extra

Docker compose

Configuração do banco que foi utilizada nos testes:

# docker-compose.yml
version: "3"

services:
  db:
    image: postgres:13.2-alpine
    container_name: PostgreSQL
    restart: on-failure
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: dbuser
      POSTGRES_PASSWORD: 123456
      POSTGRES_DB: database_name

Nota: Arquivo docker-compose.yml testado com podman-compose.