2015-05-24 14 views
10

Dato che Django 1.8 il comando makemigrations ha un --name, -noption per specificare il nome personalizzato per il file di migrazioni creato.È sicuro rinominare il file delle migrazioni di Django?

Mi piacerebbe sapere se è sicuro nelle versioni precedenti di Django creare il file di migrazione con il nome generato automaticamente e quindi rinominare il file manualmente. Sembra funzionare come previsto. Ci sono dei potenziali rischi?

risposta

15

Questo funziona, con un avvertimento minore: Django non saprà più che viene applicata la migrazione rinominata.

Così i passi per la ridenominazione di una migrazione sono:

  1. rinominare il file.
  2. Modificare qualsiasi dipendenza nel nuovo file.
  3. Se la migrazione rinominata era già stata applicata, applicarla nuovamente utilizzando --fake.

Se si tratta di una migrazione completamente nuova, il 2 e il 3 non si applicano, ed è perfettamente corretto rinominarli.

6

Questo succede a Django ogni volta che vengono migrate le migrazioni. Viene generato un nuovo file che contiene la variabile di classe replaces, che elenca i file di migrazione che vengono sostituiti.

Quindi, per rinominare un file di migrazione di file aggiungere nel seguente variabile nella classe di migrazione:

replaces = [('app name', 'migration file name'), ] 

e tutto funziona come ha fatto prima della modifica del file.

Problemi correlati