Django несколько баз данных django.db.utils.OperationalError: нет такой таблицы: django_content_type

Я пытаюсь хранить свои таблицы celery tasks в базе данных tasks, которая не имеет ничего общего с другими таблицами, но я продолжаю получать эту ошибку.

sqlite3.OperationalError: нет такой таблицы: django_content_type

я бы предпочел не иметь лишних таблиц, которые я не использую в задачах celery, таких как пользователи или другие мои модели

Итак, я создал две абстрактные модели для своих баз данных:

class TaskModel(models.Model):
    class Meta:
        abstract = True
        _db = 'tasks'

class CeleryTasks(TaskModel):
    ...


class DefaultModel(models.Model):
    class Meta:
        abstract = True
        _db = 'default'

class MyDefaultDatabaseModel(DefaultModel):
     ...

и мой маршрутизатор базы данных выглядит так:

class DatabaseRouter:
    tasks_models = ['CeleryTasks']

    def db_for_read(self, model, **hints):
        """ reading model based on params """
        if not hasattr(model, 'Meta'):
            return None
        return getattr(model.Meta, '_db', None)

    def db_for_write(self, model, **hints):
        """ writing model based on params """
        if not hasattr(model, 'Meta'):
            return None
        return getattr(model.Meta, '_db', None)

    def allow_relation(self, obj1, obj2, **hints):
        if hasattr(obj1._meta, '_db') and hasattr(obj2._meta, '_db'):
            return obj1._meta._db == obj2._meta._db
        return None

    def allow_migrate(self, db, app_label, model_name=None, **hints):
        print(
            f'allow migration database router invoked with args db={db},app_label={app_label},model_name={model_name},hints={hints}')
        if db == 'tasks':
            if model_name in self.tasks_models:
                print('returning True')
                return True
            print('returning False')
            return False
        print('returning None')
        return None

и мои полные журналы ошибок могут помочь:

Вернуться на верх