Files
Prospeccao_SeConectai/Schema/etapas/01-setup-projeto-docker-flyway.md
T
2026-10-01 11:00:47 -03:00

2.4 KiB

Etapa 01 — Setup do projeto, Docker e Flyway

Objetivo

Criar o esqueleto do projeto backend em Spring Boot, configurar a conexão com PostgreSQL via Docker e deixar o Flyway pronto para rodar as migrations que virão nas próximas etapas.

Contexto

Este é o ponto de partida do projeto. Nenhum código de negócio é escrito aqui — o foco é ambiente funcional: projeto sobe, conecta no banco, Flyway aplica a primeira migration vazia com sucesso.

Consulte ARQUITETURA-SCHEMA.md (seção 1 e 2) para a stack e estrutura de pacotes a seguir.

Tarefas

  1. Criar projeto Spring Boot 3.x (via Spring Initializr ou manualmente) com as dependências:
    • spring-boot-starter-web
    • spring-boot-starter-data-jpa
    • spring-boot-starter-validation
    • spring-boot-starter-security
    • flyway-core
    • postgresql (driver)
    • lombok
  2. Criar a estrutura de pacotes conforme definido em ARQUITETURA-SCHEMA.md seção 2 (config, domain, repository, scraper, normalizer, proxy, service, controller, security, worker) — pode começar com pacotes vazios, serão populados nas próximas etapas
  3. Criar docker-compose.yml inicial (apenas serviço postgres, os demais serviços virão na etapa 09):
    services:
      postgres:
        image: postgres:16
        environment:
          POSTGRES_DB: leadscraper
          POSTGRES_USER: leadscraper
          POSTGRES_PASSWORD: <definir via .env>
        ports:
          - "5433:5432"
        volumes:
          - postgres_data:/var/lib/postgresql/data
    volumes:
      postgres_data:
    
  4. Configurar application.yml com datasource apontando para o Postgres do Docker, e Flyway habilitado
  5. Criar src/main/resources/db/migration/V1__init.sql vazio (ou só com um comentário) para validar que o Flyway roda corretamente na subida da aplicação
  6. Criar arquivo .env.example com as variáveis necessárias (senha do banco, etc.) — nunca commitar .env real
  7. Subir o Postgres via docker compose up -d postgres e validar que o Spring Boot conecta e aplica a migration inicial sem erro

Critérios de aceite

  • Projeto Spring Boot compila e sobe sem erros
  • docker compose up -d postgres sobe o banco corretamente
  • Aplicação conecta no Postgres e o Flyway registra a migration V1__init na tabela flyway_schema_history
  • Estrutura de pacotes criada conforme arquitetura
  • .env.example documentado