HOWTO · Django

Ripristina database in Django

Questo articolo ti insegna come ripristinare un database in Django.

In questa pagina

Quando si lavora con i database, spesso ci si trova in situazioni in cui è necessario ripristinare l’intero database. Le possibili ragioni potrebbero essere l’aggiunta o la rimozione di alcune tabelle del database, modifiche alla progettazione del database, problemi di logica e relazioni o il database è stato popolato con troppi dati inutili. In ogni caso, Django rende davvero facile affrontare questo problema.

Inoltre, Django ci fornisce alcuni comandi che possono gestirlo per noi. Uno di questi comandi può ripristinare il database in Django e siamo qui per dimostrare come puoi usarlo.

Reimposta il database SQLite3 in Django

Se stai utilizzando il database SQLite3 per il tuo progetto Django e devi reimpostarlo, segui i passaggi seguenti:

  • Elimina il file db.sqlite3. Se questo file contiene dati importanti, potresti voler eseguire un backup per quelli.
  • Elimina tutte le cartelle migrations all’interno di tutte le applicazioni Django.
  • Effettua migrazioni per tutte le applicazioni Django utilizzando il comando python manage.py makemigrations. Potrebbero esserci casi in cui non vengono effettuate migrazioni per le applicazioni; in questo caso, aggiungi i nomi delle applicazioni a questo comando come questo python manage.py makemigrations MyAppOne MyAppTwo MyAppThree.
  • Infine, migra le migrazioni usando questo comando: python manage.py migrate.

Reimposta l’intero database in Django

Se dobbiamo ripristinare completamente l’intero database, utilizzeremo il seguente comando: (Nota: dopo aver utilizzato questo codice, verranno eliminati anche tutti i superutenti esistenti.)

python manage.py flush

Ripristina le tabelle del database di un’app in Django

Se dobbiamo rimuovere le tabelle del database di un’applicazione Django, utilizzeremo il comando seguente. Il codice seguente inverte tutte le migrazioni per quella particolare applicazione:

python manage.py migrate MyApp zero