1.8 KiB
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
- Maior segurança (evita vazamentos de recursos)
- Maior robustez (melhor tratamento de erros)
- Código mais fácil de manter (padronização)
- 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