2014-11-03 14 views
10

Sto provando ad aggiornare da Django 1.6.7 a Django 1.7.1, quindi ho cercato di migrare la mia app.Django 1.7 - L'app 'your_app_name' non ha migrazioni

Ho seguito il django docs here.

Ho eliminato il sud dalle app installate.

Nella directory di migrazione, elimino i file di migrazione numerati ei file .pyc ma ho mantenuto la directory & __ init__.py file.

Ho poi corro:

python manage.py makemigrations your_app_name 

ricevo il seguente messaggio di conferma:

Migrations for 'your_app_name': 
    0001_initial.py: 
    - Create model UserProfile 

Successivo corro:

python manage.py migrate your_app_name 

ho ricevuto il seguente errore:

CommandError: App 'your_app_name' does not have migrations (you cannot selectively sync unmigrated apps) 

Come per i documenti, ho anche corse:

python manage.py migrate --fake your_app_name 

ho ricevuto lo stesso messaggio di errore:

CommandError: App 'your_app_name' does not have migrations (you cannot selectively sync unmigrated apps) 

Qualcuno può far luce sul motivo per cui questo non funziona per me?

+0

fa 'makemigrations' ha creato un nuovo file nella cartella' migrations'? – ChillarAnand

+0

sì.il nuovo file si chiama 0001_initial – user1261774

risposta

8

Se si dispone di una singola applicazione, in esecuzione migrate senza specificare l'applicazione o la migrazione può funzionare.

In tal caso, la prima cosa da controllare è che il nome della tua app corrisponda a quello specificato in settings.py in INSTALLED_APPS.

Come indicato nei commenti, i nomi delle app possono essere nel formato [parent_app]. [Nome_app]. In questo caso, la migrazione richiede solo [nome_app].

+4

Questa seconda parte potrebbe essere un po 'di confusione per le persone che atterrano qui, perché il nome dell'applicazione installata potrebbe essere "[parent_app]. [nome_app]" mentre il comando migrate.py vorrà solo [nome_app]. Confusione che può dare lo stesso errore del poster originale. – Jmills

+0

Ha funzionato per me. – vanguard69

+1

GRAZIE @TheCardCheat! Stavo usando 'parent_app.app_name' e non ho ottenuto nulla. – annapetry

0

solo per citare un altro possibile motivo:

Nel mio Django app ho aggiunto le migrazioni corrette e installato l'applicazione con pip e ottenuto lo stesso errore.

quello che mi mancava è un file corretto MANIFEST.in anche il parametro include_package_data nel setup() dal file setup.py non è stato impostato su True.

0

Ho notato che solo le app che contengono effettivamente una cartella migrations che contengono un file __init__.py sono riconosciute dalle migrazioni. IE avere solo models.py nella tua app non è abbastanza.