Quand j'exécute la commande suivante
python manage.py migrate
Je reçois cette erreur de Django, je ne peux donc pas avancer dans ma pratique:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/core/management/commands/migrate.py", line 63, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/db/migrations/executor.py", line 17, in __init__
self.loader = MigrationLoader(self.connection)
File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/db/migrations/loader.py", line 48, in __init__
self.build_graph()
File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/db/migrations/loader.py", line 241, in build_graph
self.graph.add_dependency(migration, key, parent)
File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/db/migrations/graph.py", line 42, in add_dependency
raise KeyError("Migration %s dependencies reference nonexistent parent node %r" % (migration, parent))
KeyError: u"Migration testBolt.0001_initial dependencies reference nonexistent parent node (u'delivery_boy', u'0004_auto_20150221_2011')"
Comment résoudre ce problème?
Solution - 1
Supprimez les fichiers pyc de votre dossier de migration.
Solution - 2
Nécessité de supprimer cette référence de testBolt.0001_initial en modifiant le fichier de migration.
Solution - 3
Supprimez les nouvelles modifications des modaux et exécutez python manage.py migrate --fake
Maintenant, modifiez à nouveau vos modèles avec de nouvelles modifications
Exécuter python manage.py makemigrations
Et puis exécutez à nouveau python manage.py migrate
J'ai eu un cas similaire, en cours d'exécution Django dans Windows dans une env virtuelle. Dans mon cas, la dépendance manquante était 0001_initial - ce qui était clairement dans le dossier de migration.
La solution consistait à supprimer les fichiers pyc et à effectuer une autre tentative de migration.
J'ai eu le même problème. Dans mon cas, comme j'ai joué avec les migrations manuellement, j'ai oublié de créer __init__.py
dans le dossier migrations
.
Dans mon cas, j'avais l'extension .py
dans le nom du module de dépendance, comme ceci:
dependencies = [
('dashboard', '0003_auto_20181024_0603.py'),
('auth', '__latest__'),
('contenttypes', '__latest__'),
]
J'ai enlevé le .py
, en le changeant en ceci
('dashboard', '0003_auto_20181024_0603')
et cela l'a corrigé.
Assurez-vous d'avoir activé votre environnement virtuel.
J'ai essayé les solutions de NIKHIL sans succès. Ce qui a fonctionné pour moi a été:
__pycache__
Il se peut qu'il reste des fichiers de migration dans l'application lorsque vous avez essayé la commande migrate. Commencez par supprimer tous les répertoires migrations
de tous les modules. Pour les autres cas, Nikhil Rane a tout couvert.
lancez python manage.py migrate --fake
Exécutez python manage.py makemigrations
Et puis exécutez à nouveau python manage.py migrate
cette mine fixe en douceur