Qual é a melhor maneira de atualizar a partir de Django 0,96 a 1,0?

votos
7

Devo tentar realmente atualizar meu aplicativo existente, ou simplesmente reescrevê-lo na sua maioria a partir do zero, poupando quais peças (templates, etc) eu posso?

Publicado 24/09/2008 em 18:19
fonte usuário
Em outras línguas...                            


5 respostas

votos
6

Embora isso depende do que você está fazendo, a maioria das aplicações deve ser capaz de apenas atualizar e corrigir tudo que quebra. Na minha experiência, as principais coisas que eu tive que corrigir depois de uma atualização são

  1. Mudanças a algumas das coisas funky com modelos, como a sintaxe para seguir as chaves estrangeiras.

  2. Um pequeno conjunto de alterações do modelo, mais notavelmente auto-escaping.

  3. Qualquer coisa que depende da estrutura específica de internos do Django. Isto não deve ser um problema a menos que você está fazendo coisas como modificar dinamicamente internos do Django a mudar seu comportamento de uma forma que é necessário / conveniente para o seu projeto.

Para resumir, a menos que você está fazendo um monte de coisas realmente estranho e / ou complexo, uma simples atualização deve ser relativamente indolor e necessita apenas de algumas mudanças.

Respondeu 24/09/2008 em 18:26
fonte usuário

votos
3

Atualizar. Para mim, foi muito simples: mudar __str__()para __unicode__(), escrever básica admin.py, e feito. Basta começar a executar o seu aplicativo em 1.0, testá-lo, e quando você encontrar um erro usar a documentação sobre mudanças de retro-compatibilidade para ver como corrigir o problema.

Respondeu 24/09/2008 em 18:23
fonte usuário

votos
2

Apenas atualizar seu aplicativo. O interruptor de 0,96-1,0 era enorme, mas em termos de recuo mudanças incompatíveis duvido seu aplicativo ainda tem 10% deles.

Eu estava no porta-malas antes de Django 1.0 para que eu a transição para mim foi ao longo do tempo, mas, mesmo assim, os únicos grandes coisas que eu tinha que mudar estavam newforms, newforms-admin, str () para unicode () e maxlength para max_length

A maioria das outras mudanças foram novas funcionalidades ou regravações de back-end ou coisas que, como alguém que estava a construir sites básicos nem sequer chegar perto.

Respondeu 24/09/2008 em 20:08
fonte usuário

votos
1

Nós atualizamos em um processo em várias fases e estou muito feliz com isso. O aplicativo em questão foi sobre 100.000 LoC e executar várias funções de negócios centrais com o lote de interface com sistemas legados. Nós trabalhamos assim:

  1. Update para django 0,97 post unicode mesclagem. Corrigir todos os problemas unicode
  2. refatorar o aplicativo em aplicativos reutilizáveis, adicionar testes. Isso nos deixou com 40.000 LoC no principal application / Projeto
  3. Actualiza para o django 0,97 post autoexcape mesclagem. Fix auto escapar nos aplicativos reutilizáveis ​​criados no 3. Em seguida, corrigir os problemas de auto-escaping restantes na aplicação mian.
  4. Atualizar para 1.0. O que restou foi principalmente a fixação do material de administração.

A coisa toda levou cerca de 6 meses onde nós onde executando um ramo de produção legado em nossos servidores, enquanto portar um outro ramo a 1,0. Enquanto isso nós também, onde a adição de recursos para o ramo de produção.

A fusão final foi muito menos confuso do que o esperado e levou cerca de uma semana para 4 codificadores que se fundem, revisão, testes e fixação. Em seguida, rolou para fora, e por cerca de uma semana foi mordido por insetos anteriormente inesperados.

Apesar de tudo, estou muito satisfeito com o resultado. Temos uma base de código muito melhor agora para o desenvolvimento.

Respondeu 04/01/2009 em 13:52
fonte usuário

votos
1

Somente sites mais simples são fáceis de atualizar.

Esperar dor real se o seu site acontece a ser para não-ASCII parte do mundo (leia-se: em qualquer lugar fora dos EUA e Reino Unido). A mudança mais dolorosa em Django foi a mudança de bytestrings de objetos Unicode internamente - agora você tem que encontrar todos os lugares onde você usar bytestrings e mudar isso para unicode. Pior caso é a prestação modelo, você nunca saberá que você se esqueceu de mudar uma variável até chegar UnicodeError.

Outros notáveis coisa: manipuladores ( oldforms ) ter ido e você não tem outra maneira do que para reescrever todas as partes com formulários ( newforms ).

Se este for o seu caso e seu projeto é maior do que 2-3 apps, eu estaria um pouco relutante em atualizar até que realmente necessário.

Respondeu 26/09/2008 em 11:40
fonte usuário

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