2

SQLSTATE [42S02]: ベース テーブルまたはビューが見つかりません: 1146 テーブル 'desbest_full2.showdown_matches' が存在しません

しかし、なぜ、内部に mysql セットアップ スクリプトがある場合app/code/local/Desbest/Showdown/sql/Showdown_setup/mysql4-install-1.php

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

$installer = $this;
/* @var $installer Mage_Catalog_Model_Resource_Eav_Mysql4_Setup */
$installer->startSetup();
$installer->run("

    CREATE TABLE {$this->getTable('showdown_matches')} (
    --CREATE TABLE IF NOT EXISTS `showdown_matches` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `firstproductid` int(11) NOT NULL,
      `secondproductid` int(11) NOT NULL,
      `title` varchar(255) NOT NULL,
      `datenumber` varchar(10) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8_general_ci AUTO_INCREMENT=1 ;

    CREATE TABLE IF NOT EXISTS `showdown_votes` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `matchid` int(11) NOT NULL,
      `votedfor` varchar(10) NOT NULL,
      `ip` varchar(50) NOT NULL,
      `datenumber` varchar(10) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8_general_ci AUTO_INCREMENT=1 ;



");
$installer->endSetup();

モジュールは、元の Magento インストールで機能しました。

4

2 に答える 2

5

Magentoはすでに実行されていると見なしているため、セットアップスクリプトが実行されていない可能性があります。モジュールのバージョンを使用して、データベーステーブルcore_resourceでモジュールのレコードを確認できます。このリソースレコードは、Magentoがモジュールセットアップスクリプトをすでに実行しているかどうかを知る方法、または古いバージョンから新しいバージョンへのアップグレードスクリプトを実行する必要があるかどうかを判断する方法です。

モジュールのレコードをcore_resourceテーブルから削除すると、Magentoは次にページを生成するときにセットアップスクリプトの実行を試みます。

die("Exit for now");また、テーブルを作成する部分に実際に到達するように、セットアップスクリプトからを削除する必要があると思います。セットアップスクリプトが起動してdie()関数を呼び出し、そのスクリプトの実行を終了した場合、セットアップスクリプトが完了したことを示すcore_resourceレコードを作成し、そのレコードをから削除しない限り再度実行しない可能性があると思います。 core_resourceテーブル。

セットアップスクリプトに関する情報は、Magentoナレッジベース: 開発者向けMagento:パート6-Magentoセットアップリソースにあります。

また、モジュール構成XMLファイルをチェックして、そこにあるバージョンがセットアップスクリプトのファイル名のバージョンと一致していることを確認することもできます。

<modules>
    <Desbest_Showdown>
        <version>1</version>
    </Desbest_Showdown>
</modules>
<global>
    <resources>
        <showdown_setup>
            <setup>
                <module>Desbest_Showdown</module>
            </setup>
        </showdown_setup>
    </resources>
</global>

私が考えたもう1つのことは、ファイル/ディレクトリ名の大文字と小文字の区別です。大文字と小文字を区別しないファイルシステムを使用しているMacで多数の設定を行った後、ファイルシステムで大文字と小文字を区別するLinuxボックスにファイルを移動すると、ファイルが見つからないという問題が発生します。あなたはあなたのファイル名をとしてリストしましapp/code/local/Desbest/Showdown/sql/Showdown_setup/mysql4-install-1.phpた、そして私はディレクトリShowdown_setupがすべて小文字である必要があるかもしれないと思いますshowdown_setup

于 2012-08-14T20:56:00.577 に答える
1

この質問には、実行されていないセットアップ リソース スクリプトをデバッグするための手順があります。

于 2012-08-15T19:03:37.267 に答える