1

インストーラ スクリプトが実行されません。

/app/etc/modules/Starmall_Salesorder.xml

<?xml version="1.0"?>
<config>
<modules>
    <Starmall_Salesorder>
        <active>true</active>
        <version>0.1.0</version>
        <codePool>local</codePool>
    </Starmall_Salesorder>
</modules>

構成.xml

<modules>
    <Starmall_Salesorder>
        <version>0.1.0</version>
    </Starmall_Salesorder>
</modules>

...
    <resources>
        <starmall_salesorder_setup>
            <setup>
                <module>Starmall_Salesorder</module>
            </setup>
        </starmall_salesorder_setup>
    </resources>

...

/app/code/local/Starmall/Salesorder/sql/starmall_salesorder_setup/mysql4-install-0.1.0.php:

<?php echo 'Running installer: '.get_class($this)."\n <br /> \n";  
die("Exit for now");

ページをロードするときに、テスト出力が表示されません。このモジュール
には行がありません。core_resource

/var/log に表示されるエラーはありません

このインストーラーが実行されないのはなぜですか?

app/code/core/Mage/Core/Model/Resource/Setup.php
It doesn't get here in this function にデバッグ行を追加しました_installResourceDb($newVersion)

    protected function _installResourceDb($newVersion)
{
    Mage::log("this line is not added to log file");

    $oldVersion = $this->_modifyResourceDb(self::TYPE_DB_INSTALL, '', $newVersion);
    $this->_modifyResourceDb(self::TYPE_DB_UPGRADE, $oldVersion, $newVersion);
    $this->_getResource()->setDbVersion($this->_resourceName, $newVersion);

    return $this;
}
4

2 に答える 2

1

投稿に一致するノードを含むモジュール宣言ファイルがありmodules、大文字と小文字を区別するファイルシステムを使用していると仮定すると、アプリケーションはモジュール構成ファイルをロードしていません。

Magento の初期化時に、各モジュールの構成ファイルへのパスの一部として<modules>、値とともに子ノードが使用されます。codePoolノード名 (例: starmall_salesorder) は、ディレクトリ パスStarmall/Salesorderに変換されます (大文字に注意してください)。これを解決するには、宣言ファイルと構成ファイルの両方でモジュールのノード名を修正しStarmall_Salesorder、値もglobal/resources/starmall_salesorder_setup/setup/module一致するように変更します。

もう 1 つの注意事項: Magento CE 1.6 以降では、モデル レイヤーがデータベースに依存しないように作り直されたため、1.6 以降を対象とした新しいモジュールでは、バックエンドに依存しないアップグレード スクリプトにinstall-1.0.phpなどのインストール ファイル名を使用することが適切です。

于 2013-01-14T13:58:46.327 に答える
0

今日、私もこれにいくつか問題がありました。キャッシュが無効になっていても、キャッシュをクリアする必要がありました。そのため、インストーラー スクリプトを更新/変更/実行するときはいつでも、最初にキャッシュを手動でクリアしてください。

于 2013-08-26T11:44:12.623 に答える