When installing I use a unique database name, not 'tiki'. I imported my old database and ran the installer. At the "Install & Upgrade" screen I chose "Upgrade". I then received a blank page with the following message:
MySQL INFORMATION_SCHEMA not available. Your MySQL version is too old to perform this operation. (upgrade_20120429_fix_collation_tiki)
Looking into the code for 20120429_fix_collation_tiki.php and doing a bit of debugging I found the following line to be causing the error:
if ( $results= $installer->fetchAll('SELECT DISTINCT(TABLE_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ?', $dbs_tiki)
A debug_print_backtrace and a few php print statements later, I determined that the $dbs_tiki variable was being set to 'tiki' when it should have been set to my database name.
I believe the following check-ins are the area of concern:
http://sourceforge.net/p/tikiwiki/code/48422/tree//trunk/installer/installlib.php?diff=48171
http://sourceforge.net/p/tikiwiki/code/45334/tree//trunk/lib/init/initlib.php?diff=44846
From what I can tell the $dbs_tiki value is predefined as 'tiki' by initlib.php and the calling sequence in installlib.php is not correctly setting the database name from local.php.
I made the following changes to get around the issue. I do not know if this meets all the requirements for this function so I can not confirm that these changes are sufficient to correctly fix the issue.
# diff -u tiki-12.0/installer/installlib.php tiki-12.0-fix/installer/installlib.php --- tiki-12.0/installer/installlib.php 2013-11-13 10:45:16.000000000 -0600 +++ tiki-12.0-fix/installer/installlib.php 2014-02-23 13:28:52.765490522 -0600 @@ -133,11 +133,13 @@ } global $dbs_tiki; - $local_php = TikiInit::getCredentialsFile(); - if (empty($dbs_tiki) && is_readable($local_php)) { - require($local_php); - unset($db_tiki, $host_tiki, $user_tiki, $pass_tiki); - } + if (empty($dbs_tiki) ) { + $local_php = TikiInit::getCredentialsFile(); + if (is_readable($local_php)) { + require($local_php); + unset($db_tiki, $host_tiki, $user_tiki, $pass_tiki); + } + } if ( function_exists($standalone) ) { $standalone($this);
To help developers solve the bug, we kindly request that you demonstrate your bug on a show2.tiki.org instance. To start, simply select a version and click on "Create show2.tiki.org instance". Once the instance is ready (in a minute or two), as indicated in the status window below, you can then access that instance, login (the initial admin username/password is "admin") and configure the Tiki to demonstrate your bug. Priority will be given to bugs that have been demonstrated on show2.tiki.org.
filename | created | hits | comment | version | filetype | ||
---|---|---|---|---|---|---|---|
No attachments for this item |