Chris B.
Chris B.

Reputation: 90161

How do I specify an index for a TextField in Django with a MySql backend?

I've got a model defined in Django that looks (in part) like this:

class Info(models.Model):
    information = models.TextField(max_length = 32, null = True, db_index = True)

However, when I try syncdb with a MySql backend, I get Failed to install index for app.Info model: (1170, "BLOB/TEXT column 'information' used in key specification without a key length")

How can I fix this?

Upvotes: 7

Views: 8878

Answers (1)

Chris B.
Chris B.

Reputation: 90161

The answer is to specify the field as a CharField, not a TextField.

class Info(models.Model):
    information = models.CharField(max_length = 32, null = True, db_index = True)

Upvotes: 10

Related Questions