#28832: django migrations to PostgreSQL not handling order_with_respect_to 
removals
-------------------------------------+-------------------------------------
     Reporter:  AJ                   |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Database layer       |                  Version:  1.11
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:                       |             Triage Stage:
  order_with_respect_to PostgreSQL   |  Unreviewed
  makemigrations                     |
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by AJ:

Old description:

> If you change the Meta fields on a model to remove an
> order_with_respect_to tag, it creates a command in the new migration file
> like thus:
>
>         migrations.AlterOrderWithRespectTo(
>             name='entry',
>             order_with_respect_to=None,
>         ),
>
> and everything works hunky-dory for SQLite. However... push your new code
> and migration files to a PostgreSQL server, like Heroku, run your
> migration file and ...
>
>     ERROR 2017-11-22 16:51:18,081 exception 8 140423074580224 Internal
> Server Error:
>     DETAIL:  Failing row contains (276, , 2017-11-22, U, 9, 1, null, ).
>
> This little friend starts filling your log files. What does it mean?
> Well, a little exploration of the database tables show that the second
> last field that django is trying to assign null value to is the _order
> field.
>
> _order field I'm presuming is only used by the order_with_respect_to tag.
> It doesn't seem to be created when a
>
>     order = ['score']
> command is used.
>
> So it seems somewhere in the process it realises the _order field isn't
> needed, is assigning a null value to that column which clashes with a no
> null constraint. All when it should have simply deleted the _order field
> column after the migration was run.
>
> An incompatibility bug between django and PostgreSQL perhaps?
>
> Insights anyone?

New description:

 If you change the Meta fields on a model to remove an
 order_with_respect_to tag, it creates a command in the new migration file
 like thus:

         migrations.AlterOrderWithRespectTo(
             name='entry',
             order_with_respect_to=None,
         ),

 and everything works hunky-dory for SQLite. However... push your new code
 and migration files to a PostgreSQL server, like Heroku, run your
 migration file and ...

     ERROR 2017-11-22 16:51:18,081 exception 8 140423074580224 Internal
 Server Error:
     DETAIL:  Failing row contains (276, , 2017-11-22, U, 9, 1, null, ).

 This little friend starts filling your log files. What does it mean? Well,
 a little exploration of the database tables show that the second last
 field that django is trying to assign null value to is the _order field.

 _order field I'm presuming is only used by the order_with_respect_to tag.
 It doesn't seem to be created when a

     order = [ ' score ' ]
 command is used.

 So it seems somewhere in the process it realises the _order field isn't
 needed, is assigning a null value to that column which clashes with a no
 null constraint. All when it should have simply deleted the _order field
 column after the migration was run.

 An incompatibility bug between django and PostgreSQL perhaps?

 Insights anyone?

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/28832#comment:1>
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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/069.8e56fce340b9cd767b3fcbfd6f1209fb%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to