2011-12-12 5 views
3

Selon la documentation de django-céleri, si j'ai du Sud Je devrais appelerCréation djcelery tables avec la présence du Sud

python manage.py migrate djcelery 

Cependant, tout ce qu'il fait est la création d'un certain fichier de migration:

Running migrations for djcelery: 
- Migrating forwards to 0001_initial 
> djcelery:0001_initial 
- Loading initial data for djcelery. 
No fixtures found. 

Il ne crée pas les tableaux suivants comme il se doit. Je ne syncdb après avoir enlevé au sud de 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 

Toutefois, lorsque le sud est présent, ces tables ne sont pas créés avec

python manage.py syncdb 

chose étrange est, en quelque sorte hier, je suis en mesure d'obtenir ces tables avec syncdb, mais honnêtement, je ne sais pas ce que j'ai fait pour le faire fonctionner et je ne pouvais pas le reproduire. Cela se produit sur Windows 7 et Ubuntu 11.10

Je me demande si je me trompe. Toute contribution sera appréciée!

Répondre

0

Il semble que djcelery échoue silencieusement si les tables existent déjà: voir https://github.com/ask/django-celery/blob/master/djcelery/migrations/0001_initial.py

Vous pouvez essayer de colmater la migration et imprime le message d'exception. Cela peut aider. Editer: Vous pouvez essayer de modifier les ignore_exists dans 0001_initial.py avec ce qui suit. (Ok pas très propre, mais il peut aider à comprendre)

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

Bonjour Luc, merci pour la réponse! Si possible, pouvez-vous décrire précisément quelles devraient être les étapes à suivre s'il vous plaît? (c'est-à-dire, patcher et imprimer le message d'exception.) – airfang

+0

Salut airfang, voir ma mise à jour – luc

3

Nous avons eu le même problème et nous avons pu obtenir toutes les tables créées avec le Sud installés en utilisant le drapeau --all avec syncdb:

python manage.py syncdb --all 
-1

Il suffit de lancer cette commande, je l'ai récemment utilisée et j'ai créé toutes les tables djcelery.

python manage.py migrate 
Questions connexes