У меня есть пользовательская таблица mysql, которую мы назовем module_identifiers
, и соответствующая модель в моем модуле под названием Идентификаторы.Это мой сценарий установки:
$installer = $this;
$installer->startSetup();
$installer->run("
CREATE TABLE `{$installer->getTable('module_identifiers')}` (
`module_identifier_id` int(11) NOT NULL AUTO_INCREMENT,
`identifier` varchar(255) NOT NULL,
`customer_id` int(11) unsigned NOT NULL,
`profile_name` varchar(100) NOT NULL,
`provider` varchar(50) NOT NULL,
PRIMARY KEY (`module_identifier_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
");
$installer->endSetup();
В моем модуле / модель / Identifiers.php
class Namespace_Module_Model_Identifiers extends Mage_Core_Model_Abstract {
protected function _construct() {
$this->_init('module/identifiers');
}
}
и в модуле / модель / Mysql4 / Identifiers.php
class Namespace_Module_Model_Mysql4_Identifiers extends Mage_Core_Model_Mysql4_Abstract {
protected function _construct() {
$this->_init('module/identifiers', 'module_identifier_id');
}
}
Поэтому, когда я хочу написать в эту таблицу, я делал следующее:
Mage::getModel('module/identifiers')
->setIdentifier($profile['identifier'])
->setCustomerId($customer_id)
->save();
И это работало замечательно, пока я не добавил столбцы provider и profile_name, и они никогда не обновляются с этим:
Mage::getModel('module/identifiers')
->setIdentifier($profile['identifier'])
->setProvider($profile['provider'])
->setProfileName($profile['profile_name'])
->setCustomerId($customer_id)
->save();
Я удалил свою пользовательскую таблицу, удалил скрипт установки моего модуля из списка core_resource, чтобы он снова запустился (что он и сделал), и новые строки добавлены в базу данных, но онипропуская данные для моих новых столбцов.Да, я проверил, что мой массив $ profile содержит правильные данные.Что я делаю не так?