When I run tests I get this error during database initialization:
django.db.migrations.state.InvalidBasesError: Cannot resolve bases for [
add a folder named "migrations
" and in this folder create "__init__.py
" file
If this is only happening when running python manage.py test
(maybe because you have already made the necessary migrations), you should explicitly say that contrib.auth
should not migrate in the MIGRATION_MODULES
of your settings module.
MIGRATION_MODULES(
'auth': "contrib.auth.migrations_not_used_in_tests",
)
happened to me with no other app - just because I renamed a model which was a base for other models (and maybe created that sub-models within the same migration) renaming the super-model to it's original name solved it for me
Simply creating a migrations
directory at the root of your app (so users/migrations/
in your case) and adding an empty __init__.py
file might resolve your issue. At least it did for me when I was getting the same error.
But you're better off running makemigrations
for your app, as suggested by
@zenofewords above. That will create the directory for you AND generate migrations for your proxy models.
Why does Django create migration files for proxy models?
Your tests are looking for those migrations and aren't finding them.
I had this problem after I renamed the parent table of a bunch of my proxy models. I resolved it by:
makemigrations
and migrate
againAfter a lot of digging on this the only thing that worked for me was
comment out the offending apps, run migrations, then add them in again.
Just a workaround but hopefully it helps somebody.