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 , 11 years ago
comment:2 by , 10 years ago
Cc: | added |
---|---|
Has patch: | set |
Owner: | changed from | to
Status: | new → assigned |
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 , 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.
comment:4 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
python -Walways ./runtests.py
gives medjango/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? :)