#31834: Cannot sqlmigrate on Django migrations that change unique_together
-------------------------------------+-------------------------------------
               Reporter:  Brіаn Lаі  |          Owner:  nobody
                   Type:  Bug        |         Status:  new
              Component:  Database   |        Version:  3.0
  layer (models, ORM)                |
               Severity:  Normal     |       Keywords:  sqlmigrate
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 Somewhat similar to #26624, but forward sqlmigrate, reproduced on Django
 3.0.8 and Postgres 10.x.

 If a model with a unique_together of

 {{{
 unique_together = [
     (a, b)
 ]
 }}}

 and then this becomes

 {{{
 unique_together = [
     (a, b, c)
 ]
 }}}

 , although the makemigrations command successfully generates the
 corresponding AlterUniqueTogether() operation, the operation cannot be
 inspected with the sqlmigrate command.


 Reproduce bug with the following (the project may also be attached)

 {{{
 class Model1(models.Model):
     id = models.IntegerField(primary_key=True)
     name = models.CharField(max_length=255, unique=True)


 class Model2(models.Model):
     id = models.IntegerField(primary_key=True)
     link_id = models.CharField(max_length=255)
     settings = models.ForeignKey(Model1, on_delete=models.CASCADE)


 class Model3(models.Model):
     id = models.IntegerField(primary_key=True)
     order = models.IntegerField()
     model_2 = models.ForeignKey(Model2, on_delete=models.CASCADE)
     direct = models.BooleanField(default=True)

     class Meta:
         unique_together = [
             ('model_2', 'order')
             # To get the bug, change this to ('model_2', 'order',
 'direct') and sqlmigrate the migration that this creates.
         ]
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/31834>
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 on the web visit 
https://groups.google.com/d/msgid/django-updates/047.d4ef9ad0467fc3f9c6afaf5a825945d5%40djangoproject.com.

Reply via email to