Создание djcelery таблиц с присутствием South - PullRequest
3 голосов
/ 12 декабря 2011

Согласно документации 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.

Он не создает следующие таблицы, как это должно быть.Я сделал syncdb после удаления на юг из INSTALLED_APPS:

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

Мне интересно, правильно ли я это делаю.Любой вклад будет оценен!

Ответы [ 3 ]

3 голосов
/ 23 марта 2012

У нас была та же проблема, и мы смогли получить все таблицы, созданные с помощью South, используя флаг --all с syncdb:

python manage.py syncdb --all
0 голосов
/ 18 ноября 2014

Просто запустите эту команду, я недавно использовал ее и создал все таблицы djcelery.

python manage.py migrate
0 голосов
/ 12 декабря 2011

Кажется, что djcelery молча завершается сбоем, если таблицы уже существуют: см. https://github.com/ask/django-celery/blob/master/djcelery/migrations/0001_initial.py

Вы можете попытаться пропатчить миграцию и распечатать сообщение об исключении.Это может помочь.

Редактировать: Может быть, вы можете попробовать отредактировать ignore_exists в 0001_initial.py следующим образом.(Хорошо, не очень чистый, но это может помочь понять)

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
...