编程错误:关系“django_session”不存在。

19

将我的数据库从sqlite更改为postgresql后,出现了此错误。我已经进行了所有设置更改:

这是我的设置:

DATABASES = {
    'default': {
        'ENGINE': "django.db.backends.postgresql_psycopg2",
        'NAME': "postr1",
        'USER': "zorgan",
        'PASSWORD': config('DB_PASSWORD'),
        'HOST': "localhost",
        'PORT': '',
    }
}

除了执行makemigrationsmigrations之外,一切都很成功。 因此我能够成功启动我的本地服务器:

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.

但是当我访问该网站时,它返回了这个错误:

ProgrammingError at /news/
relation "django_session" does not exist
LINE 1: ...ession_data", "django_session"."expire_date" FROM "django_se...

你知道问题出在哪里吗?


您的 INSTALLED_APPS 中是否安装了 django.contrib.sessions - seuling
奇怪。然后请检查您的数据库中是否有django_session表。在python manage.py dbshell\dt中进行检查。 - seuling
1
我的数据库中没有 django_session,有什么想法吗?不过有 django_site - Zorgan
1
django_site和django_session是完全不同的。我认为在迁移时出了问题。再次迁移时会发生什么?python manage.py migrate - seuling
我遇到了同样的错误。我注意到,即使在生产环境中使用数据库,我也必须运行 python3 manage.py migrate。这个问题长期以来一直影响着我的生产环境。我不得不通过连接到我的生产数据库,然后运行 python3 manage.py migrate 来解决这个问题。我在这里提出这个问题,以防有人遇到同样的问题。 - Anthony Aniobi
显示剩余5条评论
3个回答

53

尝试伪迁移至零。

您的迁移历史记录显示已创建sessions表,但您没有真正的表格。

因此,请按照以下步骤进行操作:

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

然后再试一次。


1
太棒了!愉快地编程吧! - seuling

0

我正在使用django-v-3

这里是解决此问题的答案?

1. python manage.py migrate --fake

2. python manage.py migrate --fake-initial

3. 然后输入python manage.py runserver

享受吧

如果遇到问题,请使用python manage.py help。我希望您能找到解决方案。


0

由于您之前使用的是sqlite,现在改为了Postgres,因此您的用户名和密码不再起作用,导致出现了错误。根据您的docker-compose.yml文件,您可以执行迁移命令: docker-compose exec web python manage.py migrate 然后创建一个新的超级用户: docker-compose exec web python manage.py createsuperuser 现在您的应用程序应该可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接