Reputation: 9153
Got this error after changing my database from sqlite to postgresql. I've made all my settings changes:
Here's my settings:
DATABASES = {
'default': {
'ENGINE': "django.db.backends.postgresql_psycopg2",
'NAME': "postr1",
'USER': "zorgan",
'PASSWORD': config('DB_PASSWORD'),
'HOST': "localhost",
'PORT': '',
}
}
as well as performing makemigrations
and migrations
which were all successful. So I'm able to succesfully start my local server:
System check identified no issues (0 silenced).
May 15, 2018 - 08:59:39
Django version 1.11.8, using settings 'draft1.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
however when I go to the site it returns this error:
ProgrammingError at /news/
relation "django_session" does not exist
LINE 1: ...ession_data", "django_session"."expire_date" FROM "django_se...
Any idea what the problem is?
Upvotes: 24
Views: 37690
Reputation: 1979
Just to add a solution for an additional possible way this failure could occur.
I was struggling with the session tables not being created.
I tried the fake migration reset strategy suggested by @seuling and still was not getting the tables created.
It turns out that the enterprise installation I am working on has a highly sharded database, and the session tables are not in the same database as the default database.
So to get this to work, I performed the above fake migration steps, and also had to specify the database: --database <session_db>
e.g.
manage.py migrate --database session
Upvotes: 0
Reputation: 11
Since you were using sqlite and changed to Postgres, your user and password no longer work and you got that error. Depending on what is your docker-compose.yml file you can do a migrate command: docker-compose exec web python manage.py migrate and than create a new superuser: docker-compose exec web python manage.py createsuperuser Now your app should work.
Upvotes: 0
Reputation: 5
I'm using django-v-3
Here is the answer how to solve this issue?
1. python manage.py migrate --fake
2. python manage.py migrate --fake-initial
3. Then write python manage.py runserver
Enjoy
If facing issue use python manage.py help. I hope that you will get the solution.
Upvotes: 0
Reputation: 2966
Try fake migrate
to zero.
Your migration history shows that sessions
table was already made, but you don't have real table.
so following below
python manage.py migrate --fake sessions zero
# then your sessions migrate will be
python manage.py showmigrations
sessions
[ ] 0001_initial
# then migrate with --fake-initial again
python manage.py migrate --fake-initial
Then try again.
Upvotes: 57