如何修复无此表:main.auth_user__old

时间:2019-01-07 07:48:05

标签: python django django-models django-templates django-views

有人可以详细说明如何修复ERROR: no such table: main.auth_user__old

当我尝试将数据添加到注册的模型中时,它会出现在我的Django应用程序中。

9 个答案:

答案 0 :(得分:2)

如果您使用的是django == 2.1,则可能会收到此错误。 通过安装django == 2.1.5重新启动您的Django项目。 它将起作用。

答案 1 :(得分:1)

这是最新的SQLite和Django之间的兼容性问题。看到这里:Django - No such table: main.auth_user__old

答案 2 :(得分:1)

我已经使用以下方法解决了这个问题:

1)删除db.sqlit3

2)应用程序的目录删除pycache中的所有内容

3)manage.py makemigrations,manage.py迁移,manage.py createsuperuser,然后再manage.py运行服务器。

答案 3 :(得分:0)

您可能尚未运行迁移。在运行迁移之前,不会创建任何表。因此,错误。 参见https://docs.djangoproject.com/en/2.1/topics/migrations/#workflow

注册模型后,转到git bash或powershell。确保您在项目目录中。然后运行以下命令:

python manage.py makemigrations

然后

python manage.py migrate

这些命令将为您创建表,然后您可以向其中添加数据。

答案 4 :(得分:0)

当我使用python shell添加到数据库而不是UI时,错误不再显示

$ python manage.py shell

在python shell中

from AppName.models import Product
Product.objects.create(title='Newer', price=239.99, summary='awesome')

答案 5 :(得分:0)

没有必要降级到任何版本的Django或SQL Lite,但是如果您按照我在GitHub链接https://github.com/komerela/django_troubleshooting中概述的步骤进行操作,则应该很好...点击pdf标记为“逐步解决SQLITE3问题的解决方案.pdf”的文档

不客气!

答案 6 :(得分:0)

我知道很久以前就遇到此问题,我不想让任何人再次陷入困境:

第一步:解决方案是检查Django版本是否为2.1,然后将其更新为2.2 或更高版本。

Step2:更新到Django == 2.2或更高版本后,从migrations文件夹中删除所有旧迁移,然后删除db.sqlite3,然后再次运行makemigrations和migrations。它将解决。

祝你好运!

答案 7 :(得分:0)

这发生在我作为新手的身上,当时我正在学习 Mosh 关于最终项目 3:Django 的介绍课程。这是修复程序,通常使用 Pycharm 或等效的(无需更改任何代码):

  1. 关闭 PyCharm 或其他“runserver”实例中的所有终端窗口
  2. 删除 db.sqlite3

然后在终端窗口中像这样升级 Django pip install --upgrade django==2.1.5 完成后,您重新构建。

  1. 在 PyCharm 中打开一个终端窗口,输入:python manage.py makemigrations 并按 Enter。应该说没有检测到任何变化。
  2. 然后输入:python manage.py migrate,它会重建db.sqlite3
  3. 然后:python manage.py runserver 让它运行。
  4. 打开一个新终端,输入 python manage.py createsuperuser 并按照提示操作。
  5. 打开 http://127.0.0.1:8000/admin ,输入您刚刚创建的详细信息,然后您就可以开始工作了。

答案 8 :(得分:0)

首先你不必改变你的代码,你的django版本的问题 我很确定你正在学习 mosh 的教程或类似的东西, 要解决此问题,请按照以下步骤操作:

  1. 退出您正在使用的 IDE
  2. 从计算机中的文件夹中删除 db.sqlite,而不是在 IDE 中
  3. 打开您的 IDE 并使用此命令升级 django 版本 pip install --upgrade django==2.1.5
  4. 运行这个命令 python manage.py makemigrations
  5. 然后运行这个命令 python manage.py migrate
  6. 这会帮助你 Enchallah