Преглед изворни кода

keep models away from syncdb/reset if database backend is not being used.

abecciu пре 16 година
родитељ
комит
cba1b6fe21
1 измењених фајлова са 12 додато и 0 уклоњено
  1. 12 0
      celery/models.py

+ 12 - 0
celery/models.py

@@ -3,10 +3,13 @@
 Django Models.
 Django Models.
 
 
 """
 """
+import django
 from django.db import models
 from django.db import models
 from celery.registry import tasks
 from celery.registry import tasks
 from celery.managers import TaskManager, PeriodicTaskManager
 from celery.managers import TaskManager, PeriodicTaskManager
 from celery.fields import PickledObjectField
 from celery.fields import PickledObjectField
+from celery.backends import (CELERY_BACKEND,
+                             CELERY_PERIODIC_STATUS_BACKEND)
 from django.utils.translation import ugettext_lazy as _
 from django.utils.translation import ugettext_lazy as _
 from datetime import datetime
 from datetime import datetime
 
 
@@ -69,3 +72,12 @@ class PeriodicTaskMeta(models.Model):
     def task(self):
     def task(self):
         """The entry registered in the task registry for this task."""
         """The entry registered in the task registry for this task."""
         return tasks[self.name]
         return tasks[self.name]
+
+
+
+# keep models away from syncdb/reset if database backend is not being used.
+if (django.VERSION[0], django.VERSION[1]) >= (1,1):
+    if CELERY_BACKEND != 'database':
+        TaskMeta._meta.managed = False
+    if CELERY_PERIODIC_STATUS_BACKEND != 'database':
+        PeriodicTaskMeta._meta.managed = False