Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Commit

Na aula, o professor fala sobre commit, poderiam me explicar realmente o que seria? db.session.commit() O que cada coisa faz?

1 resposta
solução!

Oi, Eduardo! Tudo bem?

Quando estamos trabalhando com um banco de dados usando o SQLAlchemy em um aplicativo Flask, frequentemente manipulamos dados por meio de uma "sessão" (db.session). Essa sessão é uma forma de manter as alterações que desejamos fazer no banco de dados antes de realmente aplicá-las, como uma espécie de rascunho onde fazemos nossas edições.

Em resumo podemos dizer que cada parte é responsável pelas seguintes atividades:

  • db.session: é a sessão do SQLAlchemy que estamos usando para interagir com o banco de dados, por onde adicionamos, modificamos ou removemos objetos (como registros do banco de dados).

  • commit(): depois de fazer as alterações que desejamos (como adicionar um novo registro ou modificar um existente), precisamos então "comitar" essas alterações. O commit() é o passo que realmente aplica todas as alterações pendentes na sessão ao banco de dados. Assim, até que você chame commit(), as alterações estão apenas na memória e não foram salvas no banco de dados.

Por exemplo, se adicionarmos um novo jogo ao banco de dados, primeiro criamos uma instância do jogo e a adicionamos à sessão com db.session.add(novo_jogo). No entanto, esse jogo ainda não está no banco de dados até que você chame db.session.commit(), que salva permanentemente o novo jogo no banco de dados.

Espero ter ajudado!

Um forte abraço e bons estudos!