Django: afhankelijkheden verwijzen naar niet-bestaand bovenliggend knooppunt

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_initialverwijderen door het migratiebestand te bewerken.

Oplossing – 3

  1. Verwijder de nieuwe wijzigingen van de modellen en voer python manage.py migrate --fake

  2. uit

  3. Wijzig nu opnieuw uw modellen met nieuwe wijzigingen

  4. Voer python manage.py makemigrations

  5. uit

  6. En voer dan opnieuw python manage.py migrate

  7. uit


Antwoord 2, autoriteit 15%

In mijn geval had ik de extensie .pyin de naam van de afhankelijkheidsmodule, zoals deze:

dependencies = [
    ('dashboard', '0003_auto_20181024_0603.py'),
    ('auth', '__latest__'),
    ('contenttypes', '__latest__'),
]

Ik heb de .pyverwijderd 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__.pyaan te maken in de map migrations.


Antwoord 4, autoriteit 10%

Dit werkt voor mij
In je map met app-migraties

  1. Verwijder alle bestanden pyc in uw app-map (behalve de __init__)
  2. Verwijder alle bestanden in de migraties (behalve de __init__)

  3. python manage.py makemigrations

  4. python manage.py migrate
  5. 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:

  1. Alle __pycache__-mappen in elke app verwijderd.
  2. Alle bestanden in de migratiemap verwijderd, behalve __init.py__in elke app-map.
  3. python manage.py makemigrations
  4. python manage.py migrate
  5. 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 migrationsmappen 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.

Other episodes