0

関連する質問をたくさん読んだことがありますが、私の問題はすでにカバーされているものの隙間にあるので、次のようになります。

Magento Connect 経由でのみ利用可能なモジュールを変更しています。セットアップ中に、モジュールは顧客に属性を追加します。

顧客に別の属性を追加する必要があります。

そのようにコードを修正しましたが、モジュールを「再インストール」または「再インストール」する方法がわかりません。明らかに、変更されていないコードしか提供しないため、Magento Connect は使用できません。

私が試したこと:

  1. Magento キャッシュを完全にクリアしましたが、うまくいきません。

  2. 最も近い (私が思うに?) 私がやってきたのは、core_resourceテーブル内のモジュールの「正常にインストールされた」エントリを削除することです。これにより、インストールが再開されたように見えましたが、一意の制約の問題が発生しました...おそらく、最初のインストール中にモジュールによって作成されたすべてのテーブルがわからないためです。

質問:

  1. モジュールが顧客属性を追加する場合、変更されるすべてのテーブルは何ですか?

  2. データベースを変更するモジュールのインストールを単純に更新する別の/より良い方法はありますか?

ありがとうございました!

4

3 に答える 3

1

そのモジュールを以前にインストールしたことがある場合は、「core_resource」テーブルからそのエントリを削除する必要があります。

また、モジュールの SQL セットアップにドロップ (テーブル/属性) コードが含まれていない場合は、以前に作成されたすべてのテーブルおよび/または属性を手動で削除する必要があります。

http://magentocommerce.com/magento-connect/にログインします。

その拡張機能のキーをコピーします。

http://freegento.com/ddl-magento-extension.phpにアクセスします。

テキスト領域にキーを貼り付け、「クエリを送信」ボタンをクリックして、そのモジュールを直接ダウンロードします。

ダウンロード後、フォルダとファイルをそれぞれの場所に配置できます。

注: モジュールの xml ファイル (app/etc/modules/[packagename_modulename].xml) は、すべてのファイルとフォルダーが配置された後に配置します。

それで全部です。

于 2013-06-10T17:17:21.760 に答える
0

表を見てください:

core_resource

各モジュールには独自のエントリがあり、一度インストールされると、インストール スクリプトが 2 回目に実行されることはありません。

問題のモジュールのエントリが表示されるので、その行を削除します。探している行がわからない場合は、モジュールの config.xml から値を見つけることができます

これにより、モジュールが再インストールされ、SQL インストール スクリプトが再実行されます。

注意して、データベースで再実行された場合にインストールスクリプトなどが悪いことをしないことを確認する必要があります。賢明に作成されたモジュールを使用すると、データベースなどが再構築され、問題は発生しませんが、念のためバックアップしてください。

もう 1 つの方法は、更新スクリプトを使用し、モジュールのバージョン番号を更新して、上記で指定したことを行うことです。

于 2013-06-10T15:57:44.890 に答える
0

config.xml でバージョン番号を 1.0.0 から 1.0.1 に上げます。次に、モジュールの sql フォルダーに upgrade-1.0.0-1.0.1.php などのアップグレード スクリプトを作成します。

ただし、モジュールの更新可能性が失われることを忘れないでください。そのため、カスタム スクリプトに顧客属性を追加することをお勧めします。

スクリプト全体を再度実行しようとするため、制約の問題が発生しますが、SQL はまだインポートされています。

乾杯!

于 2013-06-10T15:53:49.490 に答える