Files
controles/docs/alteracoes_db_connection.md

1.8 KiB

Alterações no Gerenciamento de Conexões com o Banco de Dados

Commit

  • ID: [ID do commit será adicionado após o commit]
  • Data: [Data do commit]
  • Autor: [Nome do autor]

Contexto

O sistema estava utilizando uma única sessão global do SQLAlchemy (db_session) que era criada no início da aplicação. Isso poderia causar problemas de concorrência e vazamento de recursos.

Alterações Realizadas

1. Remoção da Sessão Global

  • Removida a linha db_session = get_db_connection() do início do arquivo
  • Todas as rotas agora criam sua própria sessão

2. Novo Padrão de Gerenciamento de Sessão

Em cada rota, implementamos o seguinte padrão:

db = get_db_connection()
try:
    # Operações com o banco
    db.commit()
except Exception as e:
    db.rollback()
    # Tratamento de erro
finally:
    db.close()

3. Melhorias no Tratamento de Erros

  • Adicionado db.rollback() em caso de exceção
  • Melhoradas as mensagens de erro
  • Garantido que a sessão seja fechada mesmo em caso de erro

4. Padronização de Código

  • Uso de request.form.get() ao invés de acessar diretamente o dicionário
  • Conversão explícita de tipos (float, int, date)
  • Validação de dados antes de criar objetos
  • Mensagens de feedback mais claras para o usuário

Impacto no Frontend

Não houve alterações necessárias nos templates, pois as mudanças foram apenas na forma como o backend gerencia as conexões com o banco de dados.

Benefícios

  1. Maior segurança (evita vazamentos de recursos)
  2. Maior robustez (melhor tratamento de erros)
  3. Código mais fácil de manter (padronização)
  4. Maior eficiência (sessões são fechadas adequadamente)

Observações

  • Esta alteração foi feita para melhorar a arquitetura do sistema
  • Não afeta a funcionalidade existente
  • Recomenda-se seguir este padrão em novas implementações