[wp-meta] [Making WordPress.org] #253: Trac MySQL migration

Making WordPress.org noreply at wordpress.org
Wed Dec 18 04:21:28 UTC 2013

#253: Trac MySQL migration
  Reporter:  nacin  |      Owner:
      Type:  task   |     Status:  new
  Priority:  high   |  Component:  Trac
Resolution:         |   Keywords:

Comment (by nacin):

 Included at the top of the schema SQL file is an explanation:


 This Trac MySQL DB schema is modified for WordPress. It may work elsewhere
 It may work elsewhere but note that some assumptions are made, such as WP
 core's username length of 60 characters. Revisions are given 40 characters
 as that is a sha1 hash and IP address fields receive 45 characters to
 hypothetically handle IPv6.

 Why does WordPress need a modified schema?

 While Trac properly specifies BIGINT when needed, all non-integer fields
 are declared to be TEXT, when many need to be VARCHAR and some should be
 MEDIUMTEXT or LONGTEXT. (core.trac.wordpress.org required more than 64KB a
 few ticket descriptions.) Using TEXT even when only some words or even a
 few letters needed to be stored is overkill and has also been reported
 Trac for being terrible for query and general performance.

 InnoDB and utf8_bin are both recommended specifically by Trac.

 Some links:
  * http://trac.edgewall.org/wiki/MySqlDb - includes list of known/old
  * http://trac.edgewall.org/ticket/6986 - Suggested schema changes
  * http://trac.edgewall.org/ticket/4378 - Why utf8_bin is used
  * http://trac.edgewall.org/ticket/3673 - Length of primary keys
  * http://trac.edgewall.org/ticket/6823 - `sid` field length and PK issues
  * http://trac-hacks.org/wiki/SqliteToMySqlScript - deprecated

Ticket URL: <http://meta.trac.wordpress.org/ticket/253#comment:2>
Making WordPress.org <http://meta.trac.wordpress.org/>
WordPress blogging software

More information about the wp-meta mailing list