Magento:忽略自定义模块中数据库列的数据类型

时间:2013-07-02 08:29:48

标签: mysql magento magento-1.7

我在Magento(1.7.0.2)中编写了自己的模块,该模块使用自己的数据库表。数据库表是通过模块中的安装脚本创建的,只需执行

即可
$installer = $this;
$installer->startSetup();
$installer->run("
    CREATE TABLE IF NOT EXISTS [...]
");

$installer->endSetup();

我在一列中犯了一个错误,在其上声明了错误的数据类型(int(11)而不是decimal (11,4)),导致值“10.10”存储为“10”。

现在,当我通过phpmyadmin或更新脚本更改此列的数据类型时,数据类型在我的表中完全更改,仍然Magento将值保存为旧数据类型,导致值“10.10”存储为“ 10.0000" 。

当我通过phpmyadmin输入值“10.10”时,它会被正确存储。但是当我尝试通过

添加该值时
Mage::getModel('mymodule/mymodel')->setMyAttribute("10.10")->save();

它仍然以数据库中的“10.0000”结尾。

之前我遇到过这个问题,并且只能通过在创建该列时添加具有正确数据类型的新列来修复它。

似乎Magento有自定义表数据类型的某种兑现机制,我似乎无法在数据库中的任何地方找到它。

对此有任何帮助将不胜感激!

0 个答案:

没有答案