Почему reset_sequences=True заставляет pytest действительно сбрасывать различия в базу данных test_database?

Я запускаю свои тесты django с помощью pytest и увидел странное поведение. Чтобы выяснить, что произошло, я вставил breakpoint() в свои тесты, а затем запустил psql'ed в мою базу данных postgres, чтобы посмотреть, в каком состоянии она находится. К моему удивлению, все таблицы базы данных были пусты, хотя при использовании MyModel.objects.all().count() выдавало около 500 (тестовых) записей.

Я просмотрел документацию и немного повозился, а затем обнаружил, что когда я изменяю

@pytest.mark.django_db

в верхней части моих тестов до

@pytest.mark.django_db(reset_sequences=True)

подсчеты, которые я вижу при использовании psql'ing в postgres, совпадают с тем, что я получаю при подсчете с помощью django orm.

Чтобы добавить путаницы, в документации фактически говорится, что reset_sequences=True

Для получения эффекта необходимо использовать вместе с transaction=True.

Почему установка reset_sequences на True приводит к тому, что подсчет с помощью psql имеет тот же эффект, что и подсчет с помощью django ORM?

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