我继承了一个Magento社区网站,在其历史上的某个时刻,它被升级了,似乎其中一个升级没有成功运行Forgot Password SQL脚本。eav_attribute
表中缺少rp_token
和rp_token_created_at
属性。所以现在,如果你使用忘记密码功能并输入系统中的电子邮件地址,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'
));'
我的最佳猜测是SMTP可能已经被停用。如果我错了,一定要告诉我。