Часто так бывает, что сам себя спросил, сам себе ответил.
Я переопределил метод getTableName
и сделал как написано тут
stackoverflow.com/questions/2417134/how-to-override-table-name-andprefix-in-magento-model
class Meta_Mass_Model_Resource extends Mage_Core_Model_Resource
{
public function getTableName($modelEntity)
{
$tableSuffix = null;
if (is_array($modelEntity)) {
list($modelEntity, $tableSuffix) = $modelEntity;
}
$parts = explode('/', $modelEntity);
if (isset($parts[1])) {
list($model, $entity) = $parts;
$entityConfig = false;
if (!empty(Mage::getConfig()->getNode()->global->models->{$model}->resourceModel)) {
$resourceModel = (string)Mage::getConfig()->getNode()->global->models->{$model}->resourceModel;
$entityConfig = $this->getEntity($resourceModel, $entity);
}
if ($entityConfig && !empty($entityConfig->table)) {
$tableName = (string)$entityConfig->table;
} else {
Mage::throwException(Mage::helper('core')->__('Can\'t retrieve entity config: %s', $modelEntity));
}
} else {
$tableName = $modelEntity;
}
Mage::dispatchEvent('resource_get_tablename', array(
'resource' => $this,
'model_entity' => $modelEntity,
'table_name' => $tableName,
'table_suffix' => $tableSuffix
));
$mappedTableName = $this->getMappedTableName($tableName);
if ($mappedTableName) {
$tableName = $mappedTableName;
} else {
if($entityConfig->ignore_prefix) {
$tablePrefix = '';
} else {
$tablePrefix = (string)Mage::getConfig()->getTablePrefix();
}
$tableName = $tablePrefix . $tableName;
}
if (!is_null($tableSuffix)) {
$tableName .= '_' . $tableSuffix;
}
return $this->getConnection(self::DEFAULT_READ_RESOURCE)->getTableName($tableName);
}
}
<models>
<core>
<rewrite>
<resource>Meta_Mass_Model_Resource</resource>
</rewrite>
</core>
</models>