添加新列以在 magento CMS 页面中安装脚本

add new column to install script in magento CMS Page

所以我已经到了模块的最后一点,这真的很烦人,我无法让它向 CMS_PAGE table.

添加新列

这是我目前拥有的:

/app/code/local/Damian/CMS/etc/config.xml

<?xml version="1.0"?>
<config>
     <modules>
        <damian_cms>
            <version>0.1.0</version>    <!-- Version of module -->
        </damian_cms>
    </modules>
    <global>

        <models>
            <damian_cms>
                <class>Damian_CMS_Model</class>
                <resourceModel>cms_mysql4</resourceModel>
            </damian_cms>
        </models>



        <events>
            <adminhtml_cms_page_edit_tab_content_prepare_form>
                <observers>
                    <damian_page_edit_tab_content>
                        <type>singleton</type>
                        <class>Damian_CMS_Model_Observer</class>
                        <method>cmsField</method>
                    </damian_page_edit_tab_content>
                </observers>
            </adminhtml_cms_page_edit_tab_content_prepare_form>


<cms_page_prepare_save>
    <observers>
        <damian_cms_save_page>
            <type>singleton</type>
            <class>Damian_CMS_Model_Observer</class>
            <method>savePage</method>
        </damian_cms_save_page>
    </observers>
</cms_page_prepare_save>
    </events>


       <resources>
                <damian_cms_setup>
                     <setup>
                    <module>damian_cms</module>
                    <class>Damian_CMS_Model_Resource_Setup</class>

                     </setup>
                    <connection>
        <use>core_setup</use>
        </connection>
                </damian_cms_setup>
<cms_write> <!-- It gives the write permission to db -->
            <connection>
                <use>core_write</use>
            </connection>
        </cms_write>
        <cms_read> <!-- It gives the read permission from db -->
            <connection>
                <use>core_read</use>
            </connection>
        </cms_read>
        </resources> 

    </global>
</config>

/app/code/local/Damian/CMS/Model/Resource/Setup.php

<?php
class Damian_CMS_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup {
}

/app/code/local/Damian/CMS/sql/cms_setup/mysql-install-0.1.0.php

<?php


$installer = $this;
/* @var $installer Mage_Core_Model_Resource_Setup */

echo 'Running This Upgrade:';
die("Exit for now");



$installer->startSetup();

$tableName = $installer->getTable('cms_page');
$installer->getConnection()->addColumn($tableName, 'cms_sitemap', array(
    'nullable' => true,
    'length' => 255,
    'default' => 1,
    'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
    'comment' => 'added from extension Damian CMS'
));



$installer->endSetup();

我没有添加其余部分,因为它似乎都可以工作,但我需要这个安装脚本才能工作,这样我就可以将它投入到实时服务器上的生产环境中,这是本地的,我可以访问我自己的 MYSQL 数据库,但是在实时服务器上我无法访问 MYSQL 数据库,所以我必须让这个脚本工作。

感谢您的帮助:)

好的,我让它工作了!

我不得不更改模块的名称以匹配我对这个的名称

 <modules>
    <Damian_CmsUpdate> <!-- Name had to change to match folder name -->
        <version>0.1</version>   
    </Damian_CmsUpdate>
</modules>

然后不得不将 config.xml 中的设置更新为这个

<! -.....- >
                     <setup>
                        <module>Damian_CmsUpdate</module>
                        <class>Damian_CmsUpdate_Model_Resource_Mysql4_Setup</class>
                     </setup>
<! -......- >