我对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 makemigrations
和python manage.py migrate
,然后再次取消注释。