Pytest --no-migrations выбрасывает сообщение "отношение уже существует".

У меня есть довольно большое приложение django, которое я обычно тестирую с помощью pytest --no-migrations (поскольку миграция занимает много времени), но поскольку я добавил отношения ManyToMany таким образом:

class Object(models.Model):
    # ...
    collections = models.ManyToManyField(Collection, through=Collection.products.through, blank=True)
class Collection(models.Model):
    # ...
    products = models.ManyToManyField("objects.Object", blank=True)

Запуск pytest работает нормально, но запуск pytest --nomigrations выкидывает эту ошибку на каждом тесте:

self = <django.db.backends.utils.CursorWrapper object at 0xffff91150820>
sql = 'CREATE TABLE "brand_collections_collection_products" ("id" bigserial NOT NULL PRIMARY KEY, "collection_id" bigint NOT NULL, "object_id" bigint NOT NULL)', params = None
ignored_wrapper_args = (False, {'connection': <django.db.backends.postgresql.base.DatabaseWrapper object at 0xffff94ed1330>, 'cursor': <django.db.backends.utils.CursorWrapper object at 0xffff91150820>})

    def _execute(self, sql, params, *ignored_wrapper_args):
        self.db.validate_no_broken_transaction()
        with self.db.wrap_database_errors:
            if params is None:
                # params default might be backend specific.
>               return self.cursor.execute(sql)
E               django.db.utils.ProgrammingError: relation "brand_collections_collection_products" already exists

/usr/local/lib/python3.10/site-packages/django/db/backends/utils.py:82: ProgrammingError

Я понятия не имею, что означает эта ошибка в данном контексте, или почему она внезапно срабатывает, и я не смог найти простой ответ в Интернете...

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