[Django] #28862: Error in auto-generated migration

classic Classic list List threaded Threaded
31 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[Django] #28862: Error in auto-generated migration

Django
#28862: Error in auto-generated migration
-------------------------------------+-------------------------------------
               Reporter:  elros      |          Owner:  nobody
                   Type:  Bug        |         Status:  new
              Component:  Database   |        Version:  1.9
  layer (models, ORM)                |
               Severity:  Normal     |       Keywords:  models migrations
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 In Django 1.9.11, after deleting a model field and removing it from
 `index_together` attribute, the `makemigrations` command generates a
 broken migration code with RemoveField operation preceding
 AlterIndexTogether operation. That causes the following `migrate` command
 to raise an exception while trying to apply the generated migration.

--
Ticket URL: <https://code.djangoproject.com/ticket/28862>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/048.3fb6ccbfeca6161f31fbc0a9f48c9776%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together and from the model generates a migration that crashes (was: Error in auto-generated migration)

Django
#28862: Removing a field from index_together and from the model generates a
migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  elros                |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Database layer       |                  Version:  1.9
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Tim Graham):

 Can you reproduce that issue with Django 2.0 or Django 1.11? It sounds
 familiar and may have been fixed in a newer version of Django (in general,
 we would always like bug reports to be confirmed against the latest
 version of Django or even Django master, if possible).

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.ea13183c59432f6c2806dc19c054f1ee%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together and from the model generates a
migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Database layer       |                  Version:  1.9
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by Artem Maslovskiy):

 * cc: Artem Maslovskiy (added)


--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:2>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.0d2e11c6a777591b9d8c3367903e3fe7%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together and from the model generates a
migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  nobody
         Type:  Bug                  |                   Status:  new
    Component:  Database layer       |                  Version:  1.9
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Tomer Chachamu):

 We have a test that says the generated migrations are in said order:

 https://github.com/django/django/blob/6c0042430e3618ce5c276d195d92a6b884daa3a3/tests/migrations/test_autodetector.py#L1323

 The docstring is incorrect, it says "Removed fields will be removed after
 updating index/unique_together." but the test actually checks for "Removed
 fields will be removed before updating index/unique_together."

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:3>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.5de5e30863ec18583d83aece3ece2106%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes (was: Removing a field from index_together and from the model generates a migration that crashes)

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-----------------------------------+------------------------------------
     Reporter:  Artem Maslovskiy   |                    Owner:  nobody
         Type:  Bug                |                   Status:  new
    Component:  Migrations         |                  Version:  1.9
     Severity:  Normal             |               Resolution:
     Keywords:  models migrations  |             Triage Stage:  Accepted
    Has patch:  0                  |      Needs documentation:  0
  Needs tests:  0                  |  Patch needs improvement:  0
Easy pickings:  0                  |                    UI/UX:  0
-----------------------------------+------------------------------------
Changes (by Tim Graham):

 * component:  Database layer (models, ORM) => Migrations
 * stage:  Unreviewed => Accepted


Comment:

 That test is from the ticket I was thinking of: #23614 (fixed in Django
 1.7.2 and later). The comment isn't accurate because the order of
 operations changed in 5c9c1e029d139bd3d5213804af2ed9f317cd0b86 (Django
 1.9). That change in ordering looks incorrect.

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.dc31e60ecf9740990de01024df09e40e%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  Ramiro
                                     |  Morales
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.8
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by Ramiro Morales):

 * owner:  nobody => Ramiro Morales
 * status:  new => assigned
 * version:  1.9 => 1.8


--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:5>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.10f0382903ee3fdf374cd815fec5083c%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  Ramiro
                                     |  Morales
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.8
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Ramiro Morales):

 Replying to [comment:4 Tim Graham]:
 >  the order of operations changed in
 5c9c1e029d139bd3d5213804af2ed9f317cd0b86 (Django 1.9).

 Actually, that change was committed during the 1.8 development cycle.

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:6>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.29f5bf8a8f5e157773bd76f11681297d%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  Ramiro
                                     |  Morales
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.8
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Ramiro Morales):

 This is what I've found so far:

 It seems the optimization introduced in
 e470f311d654267ec86f9a6325ec500345b9dff2 (later refactored in
 49f4c9f4c61885189d136d7073c26ecc91b482b1) by which a sequence of schema
 migrations operations like this:

 {{{
 - AlterIndexTogether(index_together=['title', 'author', 'newfield'] ->
 index_together=['title', 'author'])
 - RemoveField('newfield')
 }}}

 gets swapped to

 {{{
 - RemoveField('newfield')
 - AlterIndexTogether(index_together=['title', 'author', 'newfield'] ->
 index_together=['title', 'author'])
 }}}

 This is because the `references_field()` method of
 `django.db.migrations.operations.AlterIndexTogether` considers only the
 final set of `index_together` fields to conclude  there is no overlap in
 field affected by the two operations. This reasoning might be valid when
 reordering operation sequences which involve e.g. `AddField`  But when
 it's interacting with `RemoveField` (and `RenameField`?) it needs to
 consider the _initial_ set of `index_together` fields instead.

 if it did, then it would discover it can't optimize the
 `AlterIndexTogether` to be after the `RemoveField` whcih is that the OP
 reports.

 Example is for `Meta.index_together` but affects also al least
 `Meta.unique_together` too. AFAICT fixing this might involve some non-
 trivial refactoring.

 I'm open to confirmation/rebuttal and to ideas on how this could be
 solved.

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:6>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.3b539fa8c6d28e4554133f236f926bb8%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  Ramiro
                                     |  Morales
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.8
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Ramiro Morales):

 Forgot to say this happens in
 `django.db.migrations.autodetector.MigrationAutodetector._optimize_migrations()`

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:7>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.e70c39db46842642128ac9f42a391ef9%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  Ramiro
                                     |  Morales
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.9
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by Markus Holtermann):

 * version:  1.8 => 1.9


Comment:

 A good find, Artem. Thank you!

 The issue seems to come from e470f311d654267ec86f9a6325ec500345b9dff2
 which is part of 1.9 release cycle, but not 1.8.

 While the docstring on
 https://github.com/django/django/commit/e470f311d654267ec86f9a6325ec500345b9dff2
 #diff-c11e6432df7086eda3dfb9ab8e5b2839R1141 is clearly wrong, the test
 itself is still correct because the `RemoveField` operation doesn't touch
 any of the fields referred to in `AlterUniqueTogether` or
 `AlterIndexTogether`.

 There is a
 [https://github.com/MarkusH/django/blob/8e352876c337332b45a72da8bbccad2830c7b1e0/tests/migrations/test_optimizer.py#L603-L632
 test for the migration optimizer] that shows a RemoveField operation after
 the *Together operation is not moved to the front if both involve the same
 field.

 Adding this code though will make the test fail:
 {{{#!python
         self.assertOptimizesTo(
             [
                 migrations.CreateModel("Foo", [
                     ("a", models.IntegerField()),
                     ("b", models.IntegerField()),
                 ]),
                 migrations.RemoveField("Foo", "b"),
                 alter,
             ],
             [
                 migrations.CreateModel("Foo", [
                     ("a", models.IntegerField()),
                     ("b", models.IntegerField()),
                 ]),
                 alter,
                 migrations.RemoveField("Foo", "b"),
             ],
         )
 }}}
 which I believe is what you're experiencing. Maybe even this would be an
 expected behavior:
 {{{#!python

         self.assertOptimizesTo(
             [
                 migrations.CreateModel("Foo", [
                     ("a", models.IntegerField()),
                     ("b", models.IntegerField()),
                 ]),
                 migrations.RemoveField("Foo", "b"),
                 alter,
             ],
             [
                 migrations.CreateModel("Foo", [
                     ("a", models.IntegerField()),
                 ]),
             ],
         )
 }}}

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:8>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.d1fd0c5a99ddfd72c48cec18a6002ed5%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  Ramiro
                                     |  Morales
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.9
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Ramiro Morales):

 Replying to [comment:8 Markus Holtermann]:
 > the test itself is still correct because the `RemoveField` operation
 doesn't touch any of the fields referred to in `AlterUniqueTogether` or
 `AlterIndexTogether`.

 The point I tried to make in comment:6 is that this reasoning (and hence
 the asserts of the test case) is wrong because if the user removes a field
 from the model and from Meta.*_together (the test case scenario) then it's
 wrong to optimize the sequence to have te RemoveField first even it it
 doesn't mention any of the fields which will remain in *_together.

 The asserts in the test case examine the order and type of parts of the
 generated migration and don't fail because no DLL code is executed agaonst
 the DB at that point. The breakage happens at migration application time
 when it wants to execute the Alter*Together operation.

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:9>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.c376e4d3bf734e0cbbe40ee75688a6e9%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  Ramiro
                                     |  Morales
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.9
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Markus Holtermann):

 Now I understand, Ramiro. I concur with your evaluation that the initial
 assumption is wrong. I am as well surprised that this hasn't come up
 earlier / more frequently.

 Another idea that came to mind was adding temporary dependencies in
 https://github.com/MarkusH/django/blob/8e352876c337332b45a72da8bbccad2830c7b1e0/django/db/migrations/autodetector.py#L1006-L1021

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:10>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.d6fc8b3a108cafdef4506d5483cc0ac8%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  Ramiro
                                     |  Morales
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.9
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Ramiro Morales):

 #28916 was a duplicate.

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:11>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.159e29ed594e1b5409b27f2f34d3e97f%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  Ramiro
                                     |  Morales
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.9
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Tim Graham):

 #29124 was another duplicate.

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:12>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.db63349f78c1d5737b16689563d7f48c%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-------------------------------------+-------------------------------------
     Reporter:  Artem Maslovskiy     |                    Owner:  Ramiro
                                     |  Morales
         Type:  Bug                  |                   Status:  assigned
    Component:  Migrations           |                  Version:  1.9
     Severity:  Normal               |               Resolution:
     Keywords:  models migrations    |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by Ed Morley):

 * cc: Ed Morley (added)


--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:13>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.a338b5c481719e28ba4141a143eaf5c7%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-----------------------------------+------------------------------------
     Reporter:  Artem Maslovskiy   |                    Owner:  (none)
         Type:  Bug                |                   Status:  new
    Component:  Migrations         |                  Version:  1.9
     Severity:  Normal             |               Resolution:
     Keywords:  models migrations  |             Triage Stage:  Accepted
    Has patch:  0                  |      Needs documentation:  0
  Needs tests:  0                  |  Patch needs improvement:  0
Easy pickings:  0                  |                    UI/UX:  0
-----------------------------------+------------------------------------
Changes (by Ramiro Morales):

 * owner:  Ramiro Morales => (none)
 * status:  assigned => new


--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:14>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.333fcec50d67ea29e022962130e1867c%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-----------------------------------+------------------------------------
     Reporter:  Artem Maslovskiy   |                    Owner:  Jeff
         Type:  Bug                |                   Status:  assigned
    Component:  Migrations         |                  Version:  1.9
     Severity:  Normal             |               Resolution:
     Keywords:  models migrations  |             Triage Stage:  Accepted
    Has patch:  0                  |      Needs documentation:  0
  Needs tests:  0                  |  Patch needs improvement:  0
Easy pickings:  0                  |                    UI/UX:  0
-----------------------------------+------------------------------------
Changes (by Jeff):

 * owner:  (none) => Jeff
 * status:  new => assigned


--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:15>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.ba1f6bf06b3eccf75a0d518302409070%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-----------------------------------+------------------------------------
     Reporter:  Artem Maslovskiy   |                    Owner:  Jeff
         Type:  Bug                |                   Status:  assigned
    Component:  Migrations         |                  Version:  1.9
     Severity:  Normal             |               Resolution:
     Keywords:  models migrations  |             Triage Stage:  Accepted
    Has patch:  0                  |      Needs documentation:  0
  Needs tests:  0                  |  Patch needs improvement:  0
Easy pickings:  0                  |                    UI/UX:  0
-----------------------------------+------------------------------------

Comment (by Jeff):

 Ramiro Morales pointed out I am working on another duplicate #29123. I'll
 take ownership of this as well.

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:16>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.7bfe36c346306e90b0f3ee2e621d0925%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-----------------------------------+------------------------------------
     Reporter:  Artem Maslovskiy   |                    Owner:  Jeff
         Type:  Bug                |                   Status:  assigned
    Component:  Migrations         |                  Version:  1.9
     Severity:  Normal             |               Resolution:
     Keywords:  models migrations  |             Triage Stage:  Accepted
    Has patch:  0                  |      Needs documentation:  0
  Needs tests:  0                  |  Patch needs improvement:  0
Easy pickings:  0                  |                    UI/UX:  0
-----------------------------------+------------------------------------

Comment (by Jeff):

 Looking into overwriting the `FieldRelatedOptionOperation`'s reduce method
 to additionally:

 1) check if the current operation is a `RemoveField` (and maybe
 `RenameField`, I need to confirm if it is also problematic)
 2) if it is a `RemoveField` operation, to look into the model (as it
 exists in the DB) and if the field being removed is in `unique_together`,
 `index_together`, or `order_with_respect_to`, to skip the operation.

 This would correct the optimizer's erroneous migrations and I do not think
 would cause any other tests to fail.

 I am still new to the codebase, could anyone point me in the right
 direction on how I can get the current state of the table in the DB? Using
 `apps.config`'s `get_model()` is returning the state of the model from
 `models.py`, not the current state of the model as it exists in the DB. I
 am trying to use `ProjectState` at the moment. I plan to continue down
 this path, but please let me know if you can guide me to a more correct
 method of inspecting the current DB table as a model.

--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:17>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.424a8b5b3b29b0a18a082cb6f393e4cd%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [Django] #28862: Removing a field from index_together/unique_together and from the model generates a migration that crashes

Django
In reply to this post by Django
#28862: Removing a field from index_together/unique_together and from the model
generates a migration that crashes
-----------------------------------+------------------------------------
     Reporter:  Artem Maslovskiy   |                    Owner:  (none)
         Type:  Bug                |                   Status:  new
    Component:  Migrations         |                  Version:  1.9
     Severity:  Normal             |               Resolution:
     Keywords:  models migrations  |             Triage Stage:  Accepted
    Has patch:  0                  |      Needs documentation:  0
  Needs tests:  0                  |  Patch needs improvement:  0
Easy pickings:  0                  |                    UI/UX:  0
-----------------------------------+------------------------------------
Changes (by Jeff):

 * owner:  Jeff => (none)
 * status:  assigned => new


--
Ticket URL: <https://code.djangoproject.com/ticket/28862#comment:18>
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 [hidden email].
To post to this group, send email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/063.9f3e91bdc78585bc709f123e7f777995%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.
12