2011-06-30 14 views
4

私はmysql4-install-1.0.0.phpファイル内のテーブルを作成するためにポイントブランクを拒否するモジュールを作成しました....しかし、ライブサーバ上でのみです。Magento Module install SQLが実行されていません

私のローカルマシン(ライブサーバのミラー(つまり、同一のファイル構造など))では、インストールが正しく実行され、テーブルが作成されます。

したがって、ファイルが同じであることに基づいて、サーバー構成とアクセス権の問題があると想定できますか?私はどこからでも見てきました。ログファイル(PHP、MySQL、Apache、Magento)のいずれにも問題は見つかりません。

(core_read/writeを使用して)テストスクリプトでテーブルを作成できます。

誰でもこれを見る前に?

おかげ

** EDIT ** 2つの環境との間の1つの主な違いは、(localhostではありません)ライブサーバー上のMySQLがリモートであるということです。 devサーバはlocalhostです。それは問題を引き起こす可能性がありますか?

+0

他のモジュールを追加できますか?開発者のツールバー、またはシステムを台無しにしないことが分かっているものはありますか?もしそうなら、問題はあなたのモジュールがMySQLなどの設定ではないことです。 –

+0

Magentoのそれ以降のバージョン(mysql4-install-1.0.0ではなく)は、install-1.0.0.phpファイルを探します。 PHPファイル。 –

答えて

3

パブリックコードで使用されているMySQLアカウントでは、可能な限り少ない権限しか持たず、ジョブを完了させることはできません。通常、テーブルの作成/変更/削除はできません。

あなたとMySQLへ接続しているものは何でも、ユーザー名テイク、および実行します。これは、あなたにその特定のユーザ名に使用可能なユーザー@ホストコンボが表示されます

SELECT User, Host 
FROM mysql.user 
WHERE User='your username here'; 

、その後、あなたは

と実際の許可を得ることができます
show grants for [email protected]; 

ライブとdevlopmentサーバー上の2つのアカウントに対して、これを実行します。これにより、ライブシステムに存在しないアクセス許可が表示されます。

+0

返事をありがとう。ライブシステムにはGRANT ALLがありますので、MySQLの権限は十分です。しかし、ありがとう。 – sulman

+0

Magentoは独自のコネクタを使用してデータベースにアクセスしているため、これは目立たないと思います。 –

+0

どのようにマゼンタが接続するかは関係ありません。もしそれがパーミッションの問題であれば、これは2つのシステム間のパーミッションセットを比較する方法です。 magentoが独自のコネクタを持っているからといって、MySQLの権限付与システムを魔法のようにバイパスすることはできません。 –

1

Admin-> System-> Advancedセクションにモジュールがあり、有効になっていますか?

モジュールを実際に正しいスペースに展開しましたか? app/code/local/yourcompany/yourmodule?

あなたはapp/etc/modules/yourmodule.xmlを持っていますか?これは、あなたの問題を引き起こす見落とされたファイルかもしれないと私は信じています。

+0

返事をありがとう。はい、すべてが正しく展開されているように見え、モジュールは管理者に正しく表示されます。前述のように、ファイル構造はdevサーバーと同じで、正しくインストールされます。ありがとう。 – sulman

+0

すでに登録されていますか? phpmyadminを開き、モジュール名を検索してください。これは設定テーブルにあり、キーは1つだけです。それを取り出して、魔法のようにそれ自体をインストールする必要があります。 –

5
  1. インストールスクリプトがライブサーバーにインストールされているモジュールはありますか? (デバッグ用に/ etc/modules /にあるXMLファイルModule List Module

  2. モジュールのcore_resourceテーブルにはすでにレコードがありますか?その場合は、スクリプトを再実行するように設定してください。

  3. 名前が正しく付けられているとしますか? app/code/core/Mage/Core/Model/Resource/Setup.php_modifyResourceDbメソッドは、このファイルがインクルード/実行される場所です。more here

+0

ありがとうアラン。 1)はい、私は、すべての必要なモジュールファイルがライブサーバーに正しくインストールされていることを確信しています(devサーバーからレプリケートされているため)。 2)テストするDBのリストを削除します。 3)私はこの機能とデバッグを見ます。ありがとう – sulman

1

を読むキャッシュは手動で再セットアップSQLの実行を行うために、あなたのモジュールのcore_resource行を削除した場合、あなたはまた、おそらく違いをキャッシュ

をフラッシュする必要があり、犯人かもしれませんデベロッパーとプロダクションサーバーの間にキャッシュ設定があります。これは、プロダクションでのみこれを見る理由を説明します。

関連する問題