Django: dependencies reference nonexistent parent node

Question:

When I run the following command

python manage.py migrate

I receive this error from django so can’t step forward in my practice:

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')"

How do I solve this problem?

Asked By: NIKHIL RANE

||

Answers:

Go to folder testBolt -> migrations and remove 0001_initial py and pyc files.

Answered By: Sreenath K Menon

I had a similar case, running django in windows in a virtual env. In my case the missing dependency was 0001_initial – which was definitely there in the migration folder.

The ‘solution’ was to remove the pyc files and do another migrate attempt.

Answered By: jbos1234

Make sure that you have activated your virtual environment.

Answered By: Dawn T Cherian

Solution – 1

Remove pyc files from your migrations folder.

Solution – 2

Need to remove that reference from testBolt.0001_initial by editing migration file.

Solution – 3

  1. Remove the new changes from the models and run python manage.py migrate --fake

  2. Now again modify your models with new changes

  3. Run python manage.py makemigrations

  4. And then again run python manage.py migrate

Answered By: NIKHIL RANE

I had the same problem. In my case, because I played with migrations manually, I forgot to create __init__.py inside of migrations folder.

Answered By: TitanFighter

There could be some migration files remaining in the app when you tried the migrate command. First remove all migrations directories from all the modules. For other cases Nikhil Rane has covered it all.

Answered By: Vishvajit Pathak

I tried NIKHIL’s solutions with no luck. What did work for me was:

  • Removing my virtual environment
  • Deleting the migration __pycache__ folders
  • Deleting old migrations
  • Recreating my virtual environment
  • Running migrations
Answered By: Programmingjoe

In my case, I had the .py extension in the dependency module name, like this:

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

I removed the .py, changing the line to this

    ('dashboard', '0003_auto_20181024_0603'),

and that fixed it.

Answered By: Christian Long
KeyError: u"Migration testBolt.0001_initial dependencies reference nonexistent parent node (u'delivery_boy', u'0004_auto_20150221_2011')"

Remove

testBolt.0001_initial

then run migrate again

Answered By: HoangYell

This works for me
In your app migrations folder

  1. Delete all the files pyc in your app folder (except the __init__)
  2. Delete all the files in the migrations (except the __init__ )

  3. python manage.py makemigrations

  4. python manage.py migrate
  5. runserver
Answered By: Lê Hoàng Vũ

I had moved around my virtual environment folder.so I moved it back where it was, worked for me.

Answered By: Clayton Sibanda

This worked for me:

  • Delete environment.
  • Crearte new environment with all dependencies

Here’s how it worked for me:

  1. Deleted all the __pycache__ folders inside every app.
  2. Deleted all the files inside the migration folder except for __init.py__ inside each app folder.
  3. python manage.py makemigrations
  4. python manage.py migrate
  5. python manage.py runserver
Answered By: Sachin

I just uninstalled Django and reinstalled it:

pip3 uninstall Django

pip3 install Django

then migrated

Answered By: shifna sherin vp

This works for me:

  • Remove the current virtual environment and create your new virtual environment.
  • Run this command in the project directory to remove all migration files –
    find . -type d -name "__pycache__" -exec rm -rf "{}" ;
  • Remove database file .sqlite3
  • Now run the migrations using: python manage.py makemigrations
  • Migrate the migrations: python manage.py migrate

Basically, all the below steps are common and I think all have gone through these steps but if you’re missing the first step i.e., to recreate the virtual environment then must give a try to it.

Answered By: Mayur Gupta
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.