Dans le cas où vous n'avez aucune migration de schéma, je vais vous donner un scénario pratique :
Conservez deux versions des processus django ( A et B ), que vous contrôlez avec, disons, un superviseur. Gardez un processus nginx devant vos processus django, qui transmet toutes les requêtes à A. Ainsi, vous téléchargez la version B sur le serveur, démarrez le processus django B avec le superviseur, puis modifiez le fichier de configuration de votre nginx pour qu'il pointe vers B, puis rechargez votre processus nginx..
Dans le cas où vous avez des migrations de schéma, les choses se compliquent. Vos options incluent :
- Vous pouvez envisager d'utiliser une solution NoSQL, comme mongoDB (dans ce cas, vous pouvez conserver une seule instance de base de données).
- Déterminez comment enregistrer manuellement toutes les demandes d'écriture lors du téléchargement, afin de les transmettre ultérieurement à votre nouvelle base de données.