Nel caso in cui non disponi di migrazioni di schemi, ti fornisco uno scenario pratico:
Mantieni due versioni dei processi django ( A e B ), che controlli con, diciamo, supervisore. Tieni un processo nginx davanti ai tuoi processi django, che inoltra tutte le richieste ad A. Quindi, carichi la versione B sul server, avvia il processo django B con supervisore, quindi modifica il file conf di nginx in modo che punti a B, quindi ricarica il tuo processo nginx..
Nel caso in cui disponi di migrazioni di schemi, le cose si complicano. Le tue opzioni includono:
- Potresti considerare l'utilizzo di una soluzione NoSQL, come mongoDB (in questo caso puoi mantenere una singola istanza database).
- Scopri come registrare manualmente tutte le richieste di scrittura durante il caricamento, per inviarle successivamente al tuo nuovo database.