Recently I've migrated a Django project from version 1.9.1 to 3.2.7.
Now I'm trying to write some new tests, and I'm getting this error:
# python manage.py test
Creating test database for alias 'default'...
Got an error creating the test database: database "test_django" already exists
Type 'yes' if you would like to try deleting the test database 'test_django', or 'no' to cancel: yes
Destroying old test database for alias 'default'...
Traceback (most recent call last):
File "/opt/venv/lib/python3.6/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "auth_user" does not exist
I understand this is because currently I don't have any 'migrations' directory, as I cloned the git repo and the DB already existed when the Django project was running in version 1.9.1.
I've read:
All of them recommend running migrations, but:
# python manage.py makemigrations
No changes detected
# python manage.py makemigrations auth
No changes detected in app 'auth'
Again, I think this is because the DB schema already existed before upgrading to 3.2.
I cannot seem to solve the issue running the migrations approach.
Is there another way to solve this issue, or force to generate the migrations even if the DB already exist and is synced (and possible fake them)?
If the error is because of the migrations you can skip the migration errors while running tests by using the following django library
django-test-without-migrations ( pip install django-test-without-migrations)
Install the library and add it in INSTALLED_APPS (settings.py)
Then run, python manage.py test --nomigrations
refer:https://pypi.org/project/django-test-without-migrations/