1
resposta

Manipulação do Banco de dados num Projeto Django

Desde quando comecei a estudar o Django, percebi que existe um acoplamento muito forte entre o banco de dados e aplicação, principalmente quando vimos o exemplo da exclusão de uma App instalada no projeto, e foi necessário sua exclusão, e para isso foi realizado um verdadeiro "malabarismo" para poder executar isso, sendo até necessário excluir o banco de dados e criá-lo novamente.

Minha dúvida é: Numa situação real, principalmente com o projeto em produção, até que ponto posso mexer no banco de dados, de forma que NÃO venha comprometer a aplicação ?

Situações:

  • Para excluir uma App seria necessário fazer o backup ou o Django tem outros recursos para fazer isso de forma mais segura ?
  • Quanto ao próprio banco de dados, eu poderia excluir diretamente pelo SGBD as tabelas da aplicação excluída?
  • Outros recursos do SGBD, tal como criação de views com queries personalizadas, poderiam serem feitas diretamente ou TODA MANIPULAÇÃO DO BANCO DE DADOS DEVE SER FEITA, ORIGATORIAMENTE, PELA APLICAÇÃO DJANGO ?

Desde já, muito obrigado.

1 resposta

Olá Maercio, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

De fato, é importante tomar cuidado para não comprometer a aplicação durante a manipulação direta do banco de dados através do SGBD. Em relação à exclusão de uma App, o Django oferece recursos para isso de forma mais segura. Você pode utilizar o comando makemigrations após remover todos os arquivos relacionados ao app que será excluído, como arquivos de modelo, arquivos de visualização, arquivos de formulário, etc. Assim será gerada as migrações necessárias para remover a App, e em seguida utilizar o comando migrate para aplicar as migrações. Dessa forma, o Django irá remover a App e suas tabelas do banco de dados de forma segura, sem a necessidade de excluir o banco de dados inteiro.

Quanto à exclusão direta das tabelas pelo SGBD, é importante lembrar que isso pode causar inconsistências entre a definição do modelo e o estado atual do banco de dados. Isso pode causar problemas na integridade do banco de dados e na aplicação como um todo, podendo levar a erros, falhas e comportamentos inesperados. Portanto, é recomendável que toda manipulação do banco de dados seja feita pela aplicação Django, utilizando as migrações geradas pelo comando makemigrations.

Em relação à criação de views com queries personalizadas, isso pode ser feito diretamente pelo SGBD, mas é importante lembrar que qualquer alteração no banco de dados deve ser feita com cuidado e com conhecimento do impacto que isso pode causar na aplicação.

No curso, vale ressaltar que alguns processos foram feitos a título de exemplificação e didática - em um cenário real, toda arquitetura do banco tem de ser feita antes de começar de fato a programar e isto é feito em conjunto com equipes focadas em construção de arquitetura de banco de dados e que dependerá da regra de negócio utilizada.

Espero ter ajudado. Continue mergulhando em conhecimento!

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!