1
votes

Did all as the instruction says: http://turnkeye.com/blog/magento-upgrade-guide/ (It's not official Magento site, but it refers to this).

I've got myself to

Now the upgrade is complete and you can execute database upgrade visiting your Magento store in your browser, this process will take several minutes, so be patient.

And then got the mysql error. Google doesn't know something about EXACTLY this problem. Please help if you know something.

My error log:

a:5:{i:0;s:245:"Error in file: "/home/mysite/public_html/app/code/core/Mage/Customer/sql/customer_setup/mysql4-upgrade-1.4.0.0.7-1.4.0.0.8.php" - SQLSTATE[HY000]: General error: 1005 Can't create table './mysite_magento/customer_form_attribute.frm' (errno: 150)";i:1;s:978:"#0 /home/mysite/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(645): Mage::exception('Mage_Core', 'Error in file: ...')
#1 /home/mysite/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(437): Mage_Core_Model_Resource_Setup->_modifyResourceDb('upgrade', '1.4.0.0.6', '1.6.2.0.1')
#2 /home/mysite/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(320): Mage_Core_Model_Resource_Setup->_upgradeResourceDb('1.4.0.0.6', '1.6.2.0.1')
#3 /home/mysite/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(235): Mage_Core_Model_Resource_Setup->applyUpdates()
#4 /home/mysite/public_html/app/code/core/Mage/Core/Model/App.php(417): Mage_Core_Model_Resource_Setup::applyAllUpdates()
#5 /home/mysite/public_html/app/code/core/Mage/Core/Model/App.php(343): Mage_Core_Model_App->_initModules()
#6 /home/mysite/public_html/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#7 /home/mysite/public_html/index.php(87): Mage::run('', 'store')
#8 {main}";s:3:"url";s:1:"/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}

I found the exact code that should make table customer_form_attribute and tried to exewcute it, but got the same error without any additional information about it's reason. Here it is:

[SQL] 

CREATE TABLE `customer_form_attribute` (
  `form_code` char(32) NOT NULL,
  `attribute_id` smallint UNSIGNED NOT NULL,
  PRIMARY KEY(`form_code`, `attribute_id`),
  KEY `IDX_CUSTOMER_FORM_ATTRIBUTE_ATTRIBUTE` (`attribute_id`),
  CONSTRAINT `FK_CUSTOMER_FORM_ATTRIBUTE_ATTRIBUTE` FOREIGN KEY (`attribute_id`) REFERENCES `{$installer->getTable('eav_attribute')}` (`attribute_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Customer attributes/forms relations';
[Err] 1005 - Can't create table './mysite_magento/customer_form_attribute.frm' (errno: 150)
1

1 Answers

1
votes

Check your mysql error log -- it'll have more information. You might have a duplicate key, in which case the log will show you which table has the problem. Run a query to find any duplicate keys and correct them.

I would recommend running the database repair tool before upgrading the database. It will identify and correct most database integrity issues.