Alternativa com Docker para usar o PostgreSQL no projeto
Caso você esteja enfrentando dificuldades para instalar o PostgreSQL 15 em sua máquina local, ou simplesmente prefira não instalar softwares diretamente no sistema operacional, o uso do Docker pode ser uma excelente alternativa.
Com o Docker, é possível executar o PostgreSQL em um contêiner isolado, sem interferir na configuração do sistema. Isso facilita bastante o processo de integração com a aplicação Screenmatch, que está sendo desenvolvida durante o curso Persistência de Dados e Consultas com Spring Data JPA.
Além disso, o Docker permite mapear portas de forma personalizada, o que ajuda a evitar conflitos com outras aplicações que possam estar utilizando a porta padrão do PostgreSQL (5432
). Dessa forma, você consegue manter o ambiente de desenvolvimento limpo, portátil e funcional com poucos comandos no terminal.
Exemplo de configuração com Docker Compose
Abaixo segue uma configuração simples usando a versão 15 do PostgreSQL, recomendada no curso:
yaml
services:
postgres:
image: postgres:15
container_name: postgres
restart: always
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: admin
POSTGRES_DB: alura_series
ports:
- "5451:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Como configurar no pgAdmin
Se estiver utilizando o pgAdmin localmente, você pode se conectar ao container do PostgreSQL com as seguintes informações:
- **Host**: `localhost`
- **Porta**: `5451`
- **Usuário**: `admin`
- **Senha**: `admin`
- **Banco de dados**: `alura_series`
Você pode preencher essas informações na tela de criação de servidor no pgAdmin, conforme ilustrado abaixo:
Ajuste no application.properties
(na IDE ou editor de texto)
No seu projeto Spring Boot, localize o arquivo application.properties
e ajuste a URL de conexão com o banco de dados conforme a porta definida no docker-compose.yml
.
properties
spring.datasource.url=jdbc:postgresql://localhost:5451/alura_series
formacao-java/
├── aplicacao_a_orientacao_a_objetos/
├── trabalhando_com_listas_e_colecoes_dados/
├── consumindo_API_gravando_arquivos_e_lidando_com_erros/
└── ambiente_postgres/
└── docker-compose.yml