﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
33736	Unable to sqlmigrate on an AlterUniqueTogether migration	Noelia Marí Salvador	nobody	"Reproduced in Django 4.0.4.

Given this model:
{{{
class TestModel(models.Model):
    name = models.CharField(max_length=200)
    age = models.IntegerField()
    colour = models.CharField(max_length=200)

    class Meta:
        unique_together = [""name"", ""age""]
}}}

When migrations are created and applied, a unique constraint is created on the database. Now, we want to alter the unique_together to:
`unique_together = [""name"", ""colour""]`

After running `makemigrations`, **without applying the new migration**, we are able to run `sqlmigrate`:
{{{
$ testproject python3 manage.py sqlmigrate core 0003
BEGIN;
--
-- Alter unique_together for testmodel (1 constraint(s))
--
DROP INDEX ""core_testmodel_name_age_530d7841_uniq"";
CREATE UNIQUE INDEX ""core_testmodel_name_colour_5002f5dd_uniq"" ON ""core_testmodel"" (""name"", ""colour"");
COMMIT;
}}}

However, after we successfully apply migrations as below, `sqlmigrate` fails.
{{{
$ testproject python3 manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, core, sessions
Running migrations:
  Applying core.0003_alter_testmodel_unique_together... OK
}}}

So when running `sqlmigrate` on the same migration it crashes and throws a `ValueError` because it's looking for the prior index:
{{{
$ testproject python3 manage.py sqlmigrate core 0003
Traceback (most recent call last):
...
    raise ValueError(
ValueError: Found wrong number (0) of constraints for core_testmodel(name, age)
}}}

Full minimal example can be found here:
https://github.com/AledWatkins/sqlmigrate-failures"	Bug	closed	Migrations	4.0	Normal	duplicate	sqlmigrate		Unreviewed	0	0	0	0	0	0
