﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
34456	Add a way to set allow_cascade=True in _fixture_teardown()	Howard Cox	nobody	"We use [django-timescaledb](https://github.com/schlunsen/django-timescaledb) as our database backend and ran into a problem with some of our tests for django migrations on tables using timescale compression.

I [wrote up our problem on `django-timescaledb` back in October](https://github.com/schlunsen/django-timescaledb/issues/40), but it essentially boils down to:

* `django.test.testcases.TransactionTestCase._fixture_teardown()` calls `django.db.backends.postgresql.operations.sql_flush()` and truncates every table at the end of tests.
* In timescaledb, compressed hypertables create ""chunks"" as tables with a subset of the hypertable's data.
* Because we have foreign keys in some of our hypertables, the chunk tables also get that foreign-key rule.
* Those chunk tables are transparent to Django, and so are not in the list to be truncated.
* And so, the truncation fails, because the chunk tables still reference some of the data being truncated.

The easiest solution seems to be to allow `_fixture_teardown()` to opt-in to setting `allow_cascade=True` when truncating.

We're happy to submit a PR if this proposal gets accepted.
"	Uncategorized	new	Testing framework	4.2	Normal			Tom Carrick	Unreviewed	0	0	0	0	0	0
