Opened 4 days ago
Last modified 3 days ago
#35921 assigned Cleanup/optimization
migration_test_data_persistence fails when running with parallelism > 1 and Postgres
Reported by: | Raphael Gaschignard | Owned by: | Jacob Walls |
---|---|---|---|
Component: | Testing framework | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Raphael Gaschignard, Jacob Walls | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Steps to reproduce:
- Add the following file to
tests
, astest_postgres.py
import os from test_sqlite import * # NOQA DATABASES = { "default": { "ENGINE": "django.db.backends.postgresql", "USER": "user", "NAME": "django", "PASSWORD": "postgres", "HOST": "localhost", "PORT": 5432, "OPTIONS": { "server_side_binding": os.getenv("SERVER_SIDE_BINDING") == "1", }, }, "other": { "ENGINE": "django.db.backends.postgresql", "USER": "user", "NAME": "django2", "PASSWORD": "postgres", "HOST": "localhost", "PORT": 5432, }, }
- In
tests
, run the following:
python runtests.py --settings=test_postgres -k migration_test_data_persistence --parallel=2
An error occurs (for me at least) of the variety:
psycopg.errors.FeatureNotSupported: cannot truncate a table referenced in a foreign key constraint DETAIL: Table "model_package_advertisement_publications" references "model_package_publication". HINT: Truncate table "model_package_advertisement_publications" at the same time, or use TRUNCATE ... CASCADE.
Running with --parallel=1
does not trigger this issue. The issue triggers for me in Postgres but not with SQLite
This issue was introduced with the fix for #35660 (in commit 060a22ee2dde7aa29a5a29120087c4864887325)
Change History (6)
comment:1 by , 4 days ago
Description: | modified (diff) |
---|
comment:2 by , 4 days ago
Description: | modified (diff) |
---|
comment:3 by , 4 days ago
Description: | modified (diff) |
---|
comment:4 by , 4 days ago
Description: | modified (diff) |
---|---|
Summary: | migration_test_data_persistence fails when running with parallelism > 1 → migration_test_data_persistence fails when running with parallelism > 1 and Postgres |
comment:5 by , 4 days ago
Cc: | added |
---|
comment:6 by , 3 days ago
Has patch: | set |
---|---|
Owner: | set to |
Status: | new → assigned |
Triage Stage: | Unreviewed → Accepted |
Type: | Bug → Cleanup/optimization |
Nice catch, looks like I just need to add allow_cascade=True
in the sqlflush
call in the test setup. PR
Note:
See TracTickets
for help on using tickets.
CC'ing Jacob since he worked on #35660.