Actualización de la versión de Django: Mejores prácticas

Tengo un código base bastante grande escrito en Django 1.5, ya es hora de actualizar a la versión más reciente (1.11.2) ya que muchas cosas no funcionan bien.

Me pregunto si es mejor actualizar paso a paso: 1.5-> 1.6-> 1.7 … o simplemente saltar a 1.11.2

¿Qué método debería ser mejor y facilitar el proceso (difícil)? Como mi proyecto tiene muchas dependencias?

Además, ¿cuáles son las buenas prácticas para hacer? Estoy usando virtualenv y estoy al tanto de este artículo de Django sobre la actualización

Depende de dos cosas. Cuántas personas están usando la aplicación Django y la extensión de su cobertura de prueba.

Si eres el único usuario, no te preocupes, actualiza todo el camino. Pero si tiene una gran cantidad de usuarios, rápidamente descubrirá al actualizar hasta 1.11.2 que es posible que algunas pruebas no cubran algunos casos de borde.

Espera un montón de error 500 en el camino.

Si su cobertura es cercana al 100% en todas sus aplicaciones, es posible que no tenga ese problema.

Tenga en cuenta que mucho ha cambiado desde 1.5.

Yo mi caso sobre: ​​datos

Estoy usando SQLite y estoy seguro de que la última versión puede matarte si solo tienes 1 conflicto.

python manage.py makemigrations y demás tenían tantas posibilidades en su método.

Y si cambia Python de 2x a 3x, también es un nuevo caso =))

El documento que encontró (” Actualizar Django a una versión más reciente “) tiene una buena guía.

  • Una parte importante, antes de la actualización, es tener una cobertura completa por parte del conjunto de pruebas automatizadas para su aplicación, antes de la actualización.

    Desea poder ejecutar un conjunto de pruebas automatizado completo, ver todo lo que pasa y saber que todas las sucursales son ejercidas por el conjunto de pruebas .

    Esto significa que cuando rompes algo portando a Django 1.11, podrás ver qué partes de tu aplicación ya no se comportan correctamente.

  • Lea sobre los cambios que necesita hacer al leer las notas de la versión y la línea de tiempo de desaprobación , para todas las versiones relevantes entre sus versiones actuales y de destino de Django.

  • Vea qué dependencias necesitará actualizar para Django; es posible que deba corregir su código si se basa en características incompatibles en una biblioteca de terceros obsoleta.

Todo eso debería hacerse antes de actualizar una sola cosa, en mi opinión.