#31186: Error updating unique field -------------------------------------+------------------------------------- Reporter: Kailegh | Owner: nobody Type: | Status: new Uncategorized | Component: | Version: 2.2 Migrations | Keywords: migration, Severity: Normal | TextField, CharField Triage Stage: | Has patch: 0 Unreviewed | Needs documentation: 0 | Needs tests: 0 Patch needs improvement: 0 | Easy pickings: 0 UI/UX: 0 | -------------------------------------+------------------------------------- Hi, I think I have discovered a bug, if you have a field like the following: audio_name = models.CharField(blank=False, max_length=255) and decide to change it to the following one:
audio_name = models.TextField(blank=False) it generates the following migration code: operations = [ migrations.AlterModelOptions( name='s3_bucket_audios', options={}, ), migrations.AlterField( model_name='s3_bucket_audios', name='audio_name', field=models.TextField(help_text='name of the audio in the s3 bucket'), ), migrations.AlterUniqueTogether( name='s3_bucket_audios', unique_together=set(), ), ] However it that field was being use in a unique condition: class Meta: ordering = [ "audio_name"] unique_together = ('audio_name') you get the following error: django.db.utils.OperationalError: (1170, "BLOB/TEXT column 'audio_name' used in key specification without a key length") That is because it changes the field type before changing the unique condition, I think the order should be handled automatically, I had to change the code manually to: operations = [ migrations.AlterModelOptions( name='s3_bucket_audios', options={}, ), migrations.AlterUniqueTogether( name='s3_bucket_audios', unique_together=set(), ), migrations.AlterField( model_name='s3_bucket_audios', name='audio_name', field=models.TextField(help_text='name of the audio in the s3 bucket'), ), ] It is not a big issue anyway... Thanks a lot for your amazing work!! -- Ticket URL: <https://code.djangoproject.com/ticket/31186> 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 view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/050.1867e1a033d8e0eda5d75527fafd8529%40djangoproject.com.