Opened 12 years ago
Closed 11 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 , 12 years ago
comment:2 by , 11 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 , 11 years ago
Indeed, quoting the docs:
"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 , 11 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
python -Walways ./runtests.pygives medjango/db/backends/mysql/base.py:128: Warning: Specified key was too long; max key length is 767 bytesI'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? :)