2015-11-05 6 views
6

Ho rovinato il mio database così ho provato a rifarlo. Ho fatto:migrazione django Nessuna migrazione da applicare

1) ha cancellato tutte le tabelle SQL tramite

2) ha cancellato la cartella migrazioni

Così, quando io ora faccio manage.py makemigrations myapp sta creando la cartella di migrazione e il file initial.py, che guarda bene . Anche lo __init__.py è lì. Tuttavia, se faccio manage.py makemigrations myapp ottengo sempre il messaggio "Nessuna migrazione da applicare".

Ho cercato il database nella shell e le tabelle non ci sono.

Sto usando Django 1.8.

risposta

18

Django tiene traccia di tutte le migrazioni applicate nella tabella django_migrations. Quindi, solo eliminare tutte le righe della tabella di django_migrations che sono legati a voi app come:

DELETE FROM django_migrations WHERE app='your-app-name'; 

e poi fare:

python manage.py makemigrations 
python manage.py migrate 
+0

Grazie per 'Django tiene traccia di tutte le migrazioni applicate in django_migrations table.', ma' basta cancellare tutte le righe della tabella django_migrations che sono legati a voi like' app è molto distruttivo – andi

0

Django tiene traccia di tutte le migrazioni applicate nella tabella django_migrations.

Quindi, è possibile seguire questo metodo:

  1. Eliminare le righe correlate dal django_migrations.

  2. eseguire python manage.py migrare.