a faixa Version, automatizar as alterações de esquema DB com Django

votos
10

Atualmente estou olhando para o Python framework Django para o futuro db web-based aplicativos, bem como para um porto de alguns aplicativos atualmente escritas em PHP. Uma das questões mais desagradáveis durante meus últimos anos foi manter o controle de alterações do esquema do banco de dados e implantar essas mudanças nos sistemas produtivos. Eu não ousava pedir por ser capaz de desfazê-las também, mas, claro, para testes e depuração que seria um ótimo recurso. De outras perguntas aqui (como este ou este ), eu posso ver que eu não estou sozinho e que este não é um problema trivial. Além disso, eu encontrei muitas inspirações nas respostas lá.

Agora, como Django parece ser muito poderoso, ele tem todas as ferramentas para ajudar com o acima? Talvez seja mesmo em seus docs e eu perdi?

Publicado 21/08/2008 em 15:10
fonte usuário
Em outras línguas...                            


6 respostas

votos
12

Há pelo menos dois utilitários de terceiros para lidar com as migrações de esquema DB, Sul e Django Evolução . Eu não tentei qualquer um, mas tenho ouvido algumas coisas boas sobre Sul, embora Evolução tem sido em torno de um pouco mais.

Além disso, olhar para SchemaEvolution no wiki do Django. É apenas uma página wiki sobre a migração do banco de dados.

Respondeu 21/08/2008 em 16:20
fonte usuário

votos
2

Última vez que verifiquei (versão 0.97), syncdb será capaz de adicionar tabelas para sincronizar o esquema do DB com o seu arquivo models.py, mas não pode:

  • Renomear ou adicionar uma coluna em um DB povoada. Você precisa fazer isso manualmente.
  • Refactorize seu modelo (como dividir uma tabela em dois) e repovoar o seu DB conformidade.

Pode ser possível que para escrever um script Django para fazer a migração, jogando com os dois diferentes gestores , mas isso pode levar as idades se o seu DB é grande.

Respondeu 21/08/2008 em 15:21
fonte usuário

votos
1

Havia um painel sobre as alterações de esquema DB no DjangoCon recente; há um vídeo da sessão (graças ao Google), que deverá fornecer algumas informações úteis sobre um número desses utilitários.

Respondeu 25/09/2008 em 07:06
fonte usuário

votos
0

U deve pesquisa Dmigrations , funciona um diffrent bit pouco do django-eveoltions. Ele mostra-lhe tudo o que está fazendo e para que as coisas compliccated ele lhe pede para seus intervetnions. Ele deve ser grande.

Respondeu 18/09/2008 em 17:44
fonte usuário

votos
0

Eu ouvi muitas coisas boas sobre Django Schema Evolução Filial e esses foram opions de usuários reais. Ele mostely funciona fora da caixa e fazer o que deve fazer.

Respondeu 07/09/2008 em 10:41
fonte usuário

votos
0

E agora há também dmigrations . A partir do anúncio :

django-evolution tenta resolver esse problema da maneira inteligente, detectando alterações em modelos que ainda não estão refletidas no esquema de banco de dados e descobrir o que precisa ser feito para trazer os dois de volta em sincronia. Em contraste, dmigrations leva a abordagem estúpido: ele requer que você declarar explicitamente as mudanças em uma sequência de migrações, que será aplicada em vez de trazer um banco de dados até o estado mais recente que reflete os modelos subjacentes.

Isso significa trabalho extra para os desenvolvedores que criam as migrações, mas também torna todo o processo completamente transparente, para nossos projetos, decidimos ir com o sistema mais simples que poderia funcionar.

(My negrito)

Respondeu 04/09/2008 em 09:29
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more