操作错误:没有这样的表:background_task - 干净的部署方式?

问题描述

我在使用 background_tasks 和部署时遇到问题。运行 makemigrations 时,我得到:

no such table: background_task

这是我的INSTALLED_APPS

INSTALLED_APPS = [
    'appname.apps.AppnameConfig','django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','rest_framework','background_task',]

我在 python manage.py makemigrations background_task 之前也尝试过 python manage.py makemigrations 但这也失败了。

我现在的解决方法是将 tasks.py 重命名tasks 并注释 urls.py 中我从 tasks.py 调用任务的部分并删除 {{ 1}} 来自 background_task。然后我做所有的迁移,然后撤消我的重命名/评论/删除。 这有效,但必须有更好的方法吗? 我已经尝试过 here 中的提示(但我的解决方法是基于 OP 自己的 answer)和 here

解决方法

运行以下命令。

python manage.py migrate --run-syncdb

其他:

您可以删除您的迁移(将删除您的数据库)文件夹,然后再次尝试重新创建它们。

python manage.py makemigrations

python manage.py migrate

python manage.py migrate --run-syncdb