首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用South创建djcelery表

使用South创建djcelery表
EN

Stack Overflow用户
提问于 2011-12-12 15:07:37
回答 3查看 1.8K关注 0票数 3

根据姜戈-芹菜的documentation,如果我有南方,我应该打电话给

代码语言:javascript
复制
python manage.py migrate djcelery

但是,它所做的只是创建一些迁移文件:

代码语言:javascript
复制
Running migrations for djcelery:
 - Migrating forwards to 0001_initial
 > djcelery:0001_initial
 - Loading initial data for djcelery.
No fixtures found.

它不会像它应该做的那样创建下面的表。在从INSTALLED_APPS移除south之后我做了syncdb:

代码语言:javascript
复制
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,则不会使用创建这些表

代码语言:javascript
复制
python manage.py syncdb

奇怪的是,昨天我用syncdb获得了这些表,但我真的不知道我做了什么才能让它工作,也不能重现它。这在Windows 7和Ubuntu 11.10上都会发生

我想知道我是不是做错了。任何意见都将不胜感激!

EN

回答 3

Stack Overflow用户

发布于 2012-03-23 05:03:14

我们也遇到了同样的问题,通过使用带有syncdb--all标志,我们能够安装使用South创建的所有表

代码语言:javascript
复制
python manage.py syncdb --all
票数 3
EN

Stack Overflow用户

发布于 2011-12-12 17:08:10

如果表已经存在,则djcelery似乎会默默地失败:请参阅https://github.com/ask/django-celery/blob/master/djcelery/migrations/0001_initial.py

您可以尝试修补迁移并打印异常消息。这可能会有所帮助。

编辑:也许您可以尝试使用以下内容在0001_initial.py中编辑ignore_exists。(好的,不是很干净,但这可能有助于理解)

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2014-11-18 19:53:34

只需运行此命令,我最近使用它并创建了所有djcelery表。

代码语言:javascript
复制
python manage.py migrate
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8470976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档