Als ik de volgende opdracht uitvoer
python manage.py migrate
Ik krijg deze foutmelding van django, dus ik kan niet naar voren komen in mijn praktijk:
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')"
Hoe los ik dit probleem op?
Antwoord 1, autoriteit 100%
Oplossing – 1
Verwijder pyc
-bestanden uit uw migratiemap.
Oplossing – 2
Je moet die verwijzing uit testBolt.0001_initial
verwijderen door het migratiebestand te bewerken.
Oplossing – 3
-
Verwijder de nieuwe wijzigingen van de modellen en voer
python manage.py migrate --fake
-
Wijzig nu opnieuw uw modellen met nieuwe wijzigingen
-
Voer
python manage.py makemigrations
-
En voer dan opnieuw
python manage.py migrate
uit
uit
uit
Antwoord 2, autoriteit 15%
In mijn geval had ik de extensie .py
in de naam van de afhankelijkheidsmodule, zoals deze:
dependencies = [
('dashboard', '0003_auto_20181024_0603.py'),
('auth', '__latest__'),
('contenttypes', '__latest__'),
]
Ik heb de .py
verwijderd en gewijzigd in dit
('dashboard', '0003_auto_20181024_0603')
en daarmee is het opgelost.
Antwoord 3, autoriteit 13%
Ik had hetzelfde probleem. In mijn geval, omdat ik handmatig met migraties speelde, vergat ik om __init__.py
aan te maken in de map migrations
.
Antwoord 4, autoriteit 10%
Dit werkt voor mij
In je map met app-migraties
- Verwijder alle bestanden pyc in uw app-map (behalve de
__init__
) -
Verwijder alle bestanden in de migraties (behalve de
__init__
) -
python manage.py makemigrations
python manage.py migrate
runserver
Antwoord 5, autoriteit 8%
Ik had een soortgelijk geval, met django in Windows in een virtuele omgeving. In mijn geval was de ontbrekende afhankelijkheid 0001_initial – wat zeker aanwezig was in de migratiemap.
De ‘oplossing’ was om de pyc-bestanden te verwijderen en nog een migratiepoging te doen.
Antwoord 6, autoriteit 7%
KeyError: u"Migration testBolt.0001_initial dependencies reference nonexistent parent node (u'delivery_boy', u'0004_auto_20150221_2011')"
Verwijderen
testBolt.0001_initial
voer vervolgens migreren opnieuw uit
Antwoord 7, autoriteit 7%
Zo werkte het voor mij:
- Alle
__pycache__
-mappen in elke app verwijderd. - Alle bestanden in de migratiemap verwijderd, behalve
__init.py__
in elke app-map. python manage.py makemigrations
python manage.py migrate
python manage.py runserver
Antwoord 8, autoriteit 5%
Zorg ervoor dat je je virtuele omgeving hebt geactiveerd.
Antwoord 9, autoriteit 5%
Ik heb de oplossingen van NIKHIL geprobeerd zonder geluk. Wat wel werkte voor mij was:
- Mijn virtuele omgeving verwijderen
- De migratie-
__pycache__
-mappen verwijderen - Oude migraties verwijderen
- Mijn virtuele omgeving opnieuw maken
- Migraties uitvoeren
Antwoord 10, autoriteit 5%
Dit werkte voor mij:
- Omgeving verwijderen.
- Maak een nieuwe omgeving met alle afhankelijkheden
Antwoord 11, autoriteit 3%
Ik had de map met mijn virtuele omgeving verplaatst. Dus ik heb hem teruggezet waar hij was, werkte voor mij.
Antwoord 12
Er kunnen nog enkele migratiebestanden in de app achterblijven toen u de opdracht migreren probeerde. Verwijder eerst alle migrations
mappen uit alle modules. Voor andere gevallen heeft Nikhil Rane het allemaal gedekt.
Antwoord 13
Ik heb net Django verwijderd en opnieuw geïnstalleerd:
pip3 uninstall Django
pip3 install Django
vervolgens gemigreerd
Antwoord 14
Ga naar map testBolt -> migraties en verwijder 0001_initial py- en pyc-bestanden.