Na aula, o professor fala sobre commit, poderiam me explicar realmente o que seria? db.session.commit() O que cada coisa faz?
Na aula, o professor fala sobre commit, poderiam me explicar realmente o que seria? db.session.commit() O que cada coisa faz?
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!