#35921: migration_test_data_persistence fails when running with parallelism > 1
and
Postgres
-------------------------------------+-------------------------------------
Reporter: Raphael Gaschignard | Owner: (none)
Type: Bug | Status: new
Component: Testing framework | Version: dev
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Raphael Gaschignard):
* summary:
migration_test_data_persistence fails when running with parallelism >
1
=>
migration_test_data_persistence fails when running with parallelism >
1 and Postgres
Old description:
> Steps to reproduce:
>
> - Add the following file to `tests`, as `test_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.
>
> This issue was introduced with the fix for #35660 (in commit
> 060a22ee2dde7aa29a5a29120087c4864887325)
New description:
Steps to reproduce:
- Add the following file to `tests`, as `test_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)
--
--
Ticket URL: <https://code.djangoproject.com/ticket/35921#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/django-updates/010701934746721a-979c7fb7-c362-4077-9bbe-8a3ca0ff7de2-000000%40eu-central-1.amazonses.com.