根据django-celery的documentation,如果我有南方我应该打电话
python manage.py migrate djcelery
但是,它所做的只是创建一些迁移文件:
Running migrations for djcelery:
- Migrating forwards to 0001_initial
> djcelery:0001_initial
- Loading initial data for djcelery.
No fixtures found.
它不会像它应该做的那样创建以下表。从INSTALLED_APPS中删除南后我执行了syncdb:
Creating table djcelery_intervalschedule
Creating table djcelery_crontabschedule
Creating table djcelery_periodictasks
Creating table djcelery_periodictask
Creating table djcelery_workerstate
Creating table djcelery_taskstate
但是,当存在south时,不会使用
创建这些表python manage.py syncdb
奇怪的是,不知怎的,昨天我能够用syncdb获取这些表,但老实说我不知道我做了什么让它工作并且无法重现它。这种情况发生在Windows 7和Ubuntu 11.10
上我想知道我做错了。任何输入将不胜感激!
答案 0 :(得分:3)
我们遇到了同样的问题,并且能够通过--all
使用syncdb
标记来安装使用South创建的所有表:
python manage.py syncdb --all
答案 1 :(得分:0)
如果表已经存在,似乎djcelery无声地失败:请参阅https://github.com/ask/django-celery/blob/master/djcelery/migrations/0001_initial.py
您可以尝试修补迁移并打印异常消息。这可能有所帮助。
编辑:您可以尝试使用以下内容编辑0001_initial.py中的ignore_exists。 (好吧不是很干净,但可能有助于理解)
def ignore_exists(fun, *args, **kwargs):
try:
fun(*args, **kwargs)
except DatabaseError, exc:
print "##", exc #This is the patch
if "exists" in str(exc):
return False
raise
return True
答案 2 :(得分:-1)
只需运行此命令,我最近使用它并创建了所有djcelery表。
python manage.py migrate