Opened 11 years ago

Closed 10 years ago

#21196 closed Bug (fixed)

Warning when running the test suite under MySQL

Reported by: Aymeric Augustin Owned by: Thomas C
Component: contrib.admin Version: dev
Severity: Normal Keywords:
Cc: t.chaumeny@… Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Failed to install index for admin_views.PrePopulatedPostLargeSlug model: Specified key was too long; max key length is 767 bytes

Unfortunately, python -Werror runtests.py doesn't display a traceback.

Change History (4)

comment:1 by afuna, 11 years ago

python -Walways ./runtests.py gives me django/db/backends/mysql/base.py:128: Warning: Specified key was too long; max key length is 767 bytes

I'd be happy to dig into this more, but I'm not sure what desired behavior is. Is it to silence the warning, turn it into an exception, adjust the test, or something else? :)

comment:2 by Thomas C, 10 years ago

Cc: t.chaumeny@… added
Has patch: set
Owner: changed from nobody to Thomas C
Status: newassigned

I encountered the same problem when trying to run the test suite under MySQL. It looks like MySQL doesn't support indexing VARCHAR fields with a length of 767+ on InnoDB tables (see http://dev.mysql.com/doc/refman/5.1/en/create-index.html). #15938 introduced a SlugField on a field with max_length = 1000 for a test.

https://github.com/django/django/pull/3388 sets db_index=False, which solves the problem.

comment:3 by Loic Bistuer, 10 years ago

Indeed:

Prefix support and lengths of prefixes (where supported) are storage engine dependent. For example, a prefix can be up to 1000 bytes long for MyISAM tables, and 767 bytes for InnoDB tables.

Version 0, edited 10 years ago by Loic Bistuer (next)

comment:4 by Loic Bistuer <loic.bistuer@…>, 10 years ago

Resolution: fixed
Status: assignedclosed

In 825ea8385857a98a36b3dc67c427b0000b5d9112:

Fixed #21196 -- Removed index on test field causing MySQL specific warning.

Note: See TracTickets for help on using tickets.
Back to Top