2016-05-05 12 views
8

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.

risposta

1

Penso che il registro sia il modo per andare qui. Dato che stai per eseguire le migrazioni sul tuo server, è meglio salvarlo per accedere in modo da poterlo prendere come vuoi in seguito.

1

stderr deve essere utilizzato quando qualcosa si rompe funzionalmente. Cioè, c'è un errore reale.

Si consiglia di stampare su stdout in qualsiasi altro momento.

Quindi se le migrazioni hanno errori, reindirizzare quelli a stderr. Altri saggi penso che Marshall X abbia risposto correttamente. Se hai bisogno di riferirti a tutto ciò che è successo e hai usato la stampa, beh, le informazioni semplicemente non ci sono.

Vorrei utilizzare la registrazione.

Problemi correlati