【发布时间】:2014-06-07 08:32:06
【问题描述】:
我继承了一个 Magento 社区站点,在它的历史上的某个时刻它被升级了,似乎其中一个升级没有成功运行 Forgot Password SQL 脚本。 rp_token 和 rp_token_created_at 属性从 eav_attribute 表中丢失。因此,现在如果您使用忘记密码功能并输入系统中的电子邮件地址,Magento 会抛出错误并且您会得到一个空白页面。
我尝试手动添加这些字段,但 Magento 在添加属性时必须在幕后做一些额外的工作,所以我的问题是如何运行升级脚本以使此功能正常工作?
看起来没有成功完成的脚本是:
app\\code\\core\\Mage\\Customer\\sql\\customer_setup\\mysql4-upgrade-1.6.0.0-1.6.1.0.php
这些属性不在 eav_attribute 表中。
// Add reset password link token attribute
$installer->addAttribute('customer', 'rp_token', array(
'type' => 'varchar',
'input' => 'hidden',
'visible' => false,
'required' => false
));
// Add reset password link token creation date attribute
$installer->addAttribute('customer', 'rp_token_created_at', array(
'type' => 'datetime',
'input' => 'date',
'validate_rules' => 'a:1:{s:16:\"input_validation\";s:4:\"date\";}',
'visible' => false,
'required' => false
));
app\\code\\core\\Mage\\Admin\\sql\\admin_setup\\upgrade-1.6.0.0-1.6.1.0.php
这些不在 admin_user 表中。
// Add reset password link token column
$installer->getConnection()->addColumn($installer->getTable('admin/user'), 'rp_token', array(
'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
'length' => 256,
'nullable' => true,
'default' => null,
'comment' => 'Reset Password Link Token'
));
// Add reset password link token creation date column
$installer->getConnection()->addColumn($installer->getTable('admin/user'), 'rp_token_created_at', array(
'type' => Varien_Db_Ddl_Table::TYPE_TIMESTAMP,
'nullable' => true,
'default' => null,
'comment' => 'Reset Password Link Token Creation Date'
));'
【问题讨论】: