Przeglądaj źródła

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

abecciu 16 lat temu
rodzic
commit
cba1b6fe21
1 zmienionych plików z 12 dodań i 0 usunięć
  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