#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.

Reply via email to