操作错误:没有这样的表: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之前我也尝试了python manage.py makemigrations background_task,但这也失败了。

我现在的解决方法是将tasks.py重命名为tasks,并在urls.py中注释我从tasks.py调用任务的部分,并从settings.py中删除background_task。然后我做所有的迁移,然后撤消我的重命名/评论/删除。这个方法有效,但一定有更好的方法吧?我已经尝试了这里的提示(但我的解决方法是基于OPs自己的答案)和这里。

执行如下命令

python manage.py migrate --run-syncdb

:

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

python manage.py makemigrations
python manage.py migrate
python manage.py migrate --run-syncdb

您需要按顺序执行文档中的步骤。如果视图中已经有background_task的导入和用法,则需要对它们全部进行注释,执行python manage.py makemigrationspython manage.py migrate,然后再次取消注释。

最新更新