我正在尝试使用Magento的EAV结构创建自定义模块,并一直使用本教程作为指南:http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-7-advanced-orm-entity-attribute-value
除了我的安装脚本总是在尝试创建_text表时失败,所以似乎一切正常。它创建第一个3 - entityname_datetime,entityname_int和entityname_decimal,然后抛出异常:无法从核心资源设置模型创建table:entityname_text。
我已经尝试更改表名但它在同一点失败了。除了更改模型和实体名称之外,我的代码完全反映了教程中的内容。
有关调试的提示吗?在核心资源设置模型中使用Mage :: log似乎没有用,虽然我无法理解为什么。
答案 0 :(得分:2)
这是最近引入该产品的Community Edition版本的错误。它已通过their public-with-a-login bug tracker向核心团队报告。现在我将跳过创建非varchar文本类型并继续学习本教程。 (不太理想,但正如教程所暗示的那样,你会发现这是一个罕见的用例,需要一个刮擦EAV模型)
答案 1 :(得分:1)
更改表名后,您是否尝试从模块的core_resource表中删除条目并清除缓存?顺便问一下,你用的是什么名字?
答案 2 :(得分:0)
class Namespace_Modulename_Model_Resource_Setup extends Mage_Eav_Model_Entity_Setup
{
public function createEntityTables($baseTableName, array $options = array())
{
...
/**
* DDL operations cannot be executed within transaction so these lines are useless
*/
//$connection->beginTransaction();
try {
foreach ($tables as $tableName => $table) {
$connection->createTable($table);
}
$connection->commit();
} catch (Exception $e) {
//$connection->rollBack();
throw Mage::exception('Mage_Eav', Mage::helper('eav')->__('Can\'t create table: %s', $tableName));
}
}
}