3

django-celery のドキュメントによると、南にいる場合は電話する必要があります

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

ただし、南が存在する場合、これらのテーブルは作成されません

python manage.py syncdb

奇妙なことに、どういうわけか昨日、syncdb を使用してこれらのテーブルを取得できましたが、正直なところ、それを機能させるために何をしたかがわからず、再現できませんでした。これは、Windows 7 と Ubuntu 11.10 の両方で発生します。

私はそれを間違っているのだろうかと思っています。どんな入力でも大歓迎です!

4

3 に答える 3

3

--all同じ問題があり、次のフラグを使用して South で作成されたすべてのテーブルをインストールすることができましたsyncdb

python manage.py syncdb --all
于 2012-03-22T21:03:14.353 に答える
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
于 2011-12-12T09:08:09.827 に答える
-1

このコマンドを実行するだけで、最近使用してすべての djcelery テーブルを作成しました。

python manage.py migrate
于 2014-11-18T11:53:34.057 に答える