⚓ T7796 upgrade from 1.5.8 fails on externallinks table creation
Page MenuHomePhabricator

upgrade from 1.5.8 fails on externallinks table creation
Closed, DeclinedPublic

Description

Author: momat

Description:
1.5.8 -> 1.6.3 upgrade fails (clean ungzipped, running web installer).
Using PHP 4.3.9 and mysql 4.0.13.

  • There are already MediaWiki tables in this database. Checking if updates are

needed...
...hitcounter table already exists.
...querycache table already exists.
...objectcache table already exists.
...categorylinks table already exists.
...logging table already exists.
...validate table already exists.
...user_newtalk table already exists.
...transcache table already exists.
...trackbacks table already exists.
Creating externallinks table...Query "CREATE TABLE externallinks (
el_from int(8) unsigned NOT NULL default '0',
el_to blob NOT NULL default '',
el_index blob NOT NULL default '',
KEY (el_from, el_to(40)),
KEY (el_to(60), el_from),
KEY (el_index(60))
) TYPE=InnoDB
" failed with error code "BLOB column 'el_to' can't be used in key specification
with the used table type (xxx)".


Version: 1.6.x
Severity: normal
OS: Linux
Platform: PC

Details

Reference
bz5796

Event Timeline

bzimport raised the priority of this task from to Lowest.Nov 21 2014, 9:13 PM
bzimport set Reference to bz5796.
bzimport added a subscriber: Unknown Object (MLST).

BLOB and TEXT indexes for InnoDB tables have been added
in mysql 4.0.14 (18 july 2003).

You should upgrade mysql to at least 4.0.14.

References:
http://dev.mysql.com/doc/refman/4.1/en/news-4-0-14.html (paragraph 4)
http://dev.mysql.com/doc/refman/4.1/en/indexes.html (paragraph 3)

I am adding a note in 1.6 release notes ( r14027 )

Forported in trunk ( r14028 )

Thanks for the bug report.

brian wrote:

I ran into the exact same issue, but I had Msql 5.0.27 installed. The
solution in my case was to run Mysql in 'non-strict table' mode.

Here is a link described the solution:
http://drupal.org/node/93123 (look at update #3)

"This is a result of MySQL running in "strict" mode. See
http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html for details.
Basically, you need to remove STRICT_TRANS_TABLES from sql_mode variable.
You can do that in your overall configuration file, when you start mysql, or
per session by executing SET SQL_MODE = '' (you may add any attributes you
actually need, see above link.)