Sono stato alla ricerca di linee guida su questo, ma senza successo. In un progetto io uso spesso Django data migrations. Sembrano più o meno come l'esempio dei documenti. Tuttavia, le operazioni a volte sono piuttosto complesse e sarebbe bello avere un output della console che riepiloghi le operazioni eseguite (ad esempio, cosa viene eliminato/creato/rewired/etc e perché).È corretto stampare su stdout o stderr nelle migrazioni di dati Django? Se é cosi, come?
Quindi la domanda è: è corretto codificare tale registrazione in una migrazione? In tal caso, è meglio usare il modulo logging
di Python o solo print
? Nel primo caso, sarebbe probabilmente necessaria una configurazione aggiuntiva per rendere visibili tali registri (in settings.py
?). In quest'ultimo caso, si preferirebbe stderr
o stdout
?
La domanda potrebbe essere estesa a se l'input interattivo dall'utente è consentito. Le strutture di migrazione dello schema incorporate sono atte a porre domande interattive relative ai dati.
Custom management commands hanno consigliato modi di fornire l'output della console, che è parte della motivazione alla base di questa domanda.