添加列脚本在 Magento 中无法正常工作
Add column script not working correctly in Magento
我在 Magento sql 更新 table 时遇到了一些问题。我创建了扩展,我想向现有 table 'customer_group'.
添加一些新列
<modules>
<Module_Name>
<module>1.0.0</module>
</Module_Name>
</modules>
<global>
<models>
<module_name>
<class>Module_Name_Model</class>
<resourceModel>module_name_resource</resourceModel>
</module_name>
<module_name_resource>
<class>Module_Name_Model_Resource</class>
</module_name_resource>
</models>
<resources>
<module_name_setup>
<setup>
<module>Module_Name</module>
<class>Module_Name_Model_Resource_Setup</class>
</setup>
</module_name_setup>
</resources>
</global>
在 sql/module_name_setup/mysql4-install-1.0.0.php 我有这个代码:
$installer = $this;
$connection = $installer->getConnection();
$installer->startSetup();
$installer->getConnection()
->addColumn($installer->getTable('customer/customer_group'), 'column_one', array(
'TYPE' => Varien_Db_Ddl_Table::TYPE_TEXT,
'NULLABLE' => false,
'COMMENT' => 'Column One'
))
->addColumn($installer->getTable('customer/customer_group'), 'column_two', array(
'TYPE' => Varien_Db_Ddl_Table::TYPE_TEXT,
'NULLABLE' => false,
'COMMENT' => 'Column Two'
));
$installer->endSetup();
但是当我刷新 Magento 前端页面时,我没有在 core_resourcestable 和 [=16 中看到任何更改=] 这两列不存在。
我做错了什么?
谢谢!
为了它的价值,这就是我做安装脚本的方式:
将安装脚本放在:
Company/Module/sql/your_module_setup/install-1.0.0.0.php
并且在模块的etc/config.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Company_Module>
<version>1.0.0.0</version>
</Company_Module>
</modules>
<global>
<resources>
<your_module_setup>
<setup>
<module>Company_Module</module>
<class>Company_Module_Model_Resource_Setup</class>
</setup>
</your_module_setup>
</resources>
</global>
</config>
然后 make 创建文件 Company/Module/Model/Resource/Setup.php:
<?php
class Company_Module_Model_Resource_Setup extends Mage_Sales_Model_Resource_Setup
{
}
我已经解决了这个错误。 app/etc/Module_Name.xml忘记设置版本了,应该是
<modules>
<Module_Name>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Shipping/>
</depends>
<version>1.0.0</version>
</Module_Name>
</modules>
并且在config.xml中也应该设置版本
我在 Magento sql 更新 table 时遇到了一些问题。我创建了扩展,我想向现有 table 'customer_group'.
添加一些新列<modules>
<Module_Name>
<module>1.0.0</module>
</Module_Name>
</modules>
<global>
<models>
<module_name>
<class>Module_Name_Model</class>
<resourceModel>module_name_resource</resourceModel>
</module_name>
<module_name_resource>
<class>Module_Name_Model_Resource</class>
</module_name_resource>
</models>
<resources>
<module_name_setup>
<setup>
<module>Module_Name</module>
<class>Module_Name_Model_Resource_Setup</class>
</setup>
</module_name_setup>
</resources>
</global>
在 sql/module_name_setup/mysql4-install-1.0.0.php 我有这个代码:
$installer = $this;
$connection = $installer->getConnection();
$installer->startSetup();
$installer->getConnection()
->addColumn($installer->getTable('customer/customer_group'), 'column_one', array(
'TYPE' => Varien_Db_Ddl_Table::TYPE_TEXT,
'NULLABLE' => false,
'COMMENT' => 'Column One'
))
->addColumn($installer->getTable('customer/customer_group'), 'column_two', array(
'TYPE' => Varien_Db_Ddl_Table::TYPE_TEXT,
'NULLABLE' => false,
'COMMENT' => 'Column Two'
));
$installer->endSetup();
但是当我刷新 Magento 前端页面时,我没有在 core_resourcestable 和 [=16 中看到任何更改=] 这两列不存在。 我做错了什么? 谢谢!
为了它的价值,这就是我做安装脚本的方式:
将安装脚本放在:
Company/Module/sql/your_module_setup/install-1.0.0.0.php
并且在模块的etc/config.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Company_Module>
<version>1.0.0.0</version>
</Company_Module>
</modules>
<global>
<resources>
<your_module_setup>
<setup>
<module>Company_Module</module>
<class>Company_Module_Model_Resource_Setup</class>
</setup>
</your_module_setup>
</resources>
</global>
</config>
然后 make 创建文件 Company/Module/Model/Resource/Setup.php:
<?php
class Company_Module_Model_Resource_Setup extends Mage_Sales_Model_Resource_Setup
{
}
我已经解决了这个错误。 app/etc/Module_Name.xml忘记设置版本了,应该是
<modules>
<Module_Name>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Shipping/>
</depends>
<version>1.0.0</version>
</Module_Name>
</modules>
并且在config.xml中也应该设置版本