Sommaire

Faire évoluer les modèles au cours du développement

Jusqu’à sa version 1.7, Django permettait uniquement de créer les tables de la base de données à partir des modèles, par la commande syncdb. Mais si par la suite, vos modèles évoluaient, ce qui est souvent le cas lors d’un développement, Django ne touchait plus aux tables déjà créées et vous deviez faire évoluer votre base de données manuellement en parallèle de l’évolution de vos modèles. Lorsque l’on regarde la façon dont Django facilite la vie des développeurs sur bien des points, cette absence de synchronisation entre les modèles et la base était un véritable caillou dans la chaussure, qui sans rendre les choses impossibles, les rendait souvent pénibles.

Heureusement, les développeurs Python et Django sont créatifs et ont développé des applications externes pour gérer les migrations, c’est-à-dire la synchronisation entre les modèles et la Base.

L’application la plus populaire et certainement la plus aboutie est South. Citons également django-evolution, car bien que plus basique, cette application règle le problème « faire évoluer les modèles au cours du développement sans trop se préoccuper des données », qui à ce stade n’ont pas encore une grande importance. ...