magento2で次のコマンドをいつ実行するのですか?


8

これらのコマンドを明確に区別する必要があるだけです。

  1. magentoセットアップを実行するタイミング:アップグレード
  2. いつsetup:di:compileを実行するのですか?

また、すべてのキャッシュが無効になっている場合でも、モジュールを変更した後、キャッシュをフラッシュしてインデクサーのインデックスを再作成する必要がありますか?

回答:


5

setup:upgradeコマンドを実行するタイミング

1つ以上のモジュールを有効にした場合、Magento setup:upgradeを実行してデータベーススキーマを更新する必要があります。

または

アップグレードスキーマを作成する場合は、Magento setup:upgradeコマンドを実行する必要があります

いつsetup:di:compileコマンドを実行する必要がありますか?

答えは簡単ですこのコマンドは次の目的を果たします

  1. アプリケーションコードの生成(ファクトリ、プロキシなど)

  2. エリア構成集約(つまり、エリアごとに最適化された依存性注入構成)

  3. インターセプター生成(つまり、インターセプターの最適化されたコード生成)

  4. インターセプトキャッシュの生成

  5. リポジトリのコード生成(つまり、API用に生成されたコード)

  6. サービスデータ属性の生成(つまり、データオブジェクトの生成された拡張クラス)

http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-compiler.html

magentoが開発者モードの場合、コンパイルコマンドを実行する必要はありません。削除var/diしてgenerationフォルダー(magento 2.0.xおよび2.1.xの場合)または生成されたフォルダー(Magento 2.2.x以降)を削除するだけです。


いつでも大歓迎です:)
Murtuza Zabuawala 2017年

@MurtuzaZabuawala var/diディレクトリは開発者モードにありますか?
MagePsycho 2017

5

bin / magento setup:upgrade ::インストーラースクリプトに関連するモジュールに変更がある場合にのみ使用されます。アップグレード後、bin / magento setup:di:compileを実行する必要があります

bin / magento setup:di:compile :: di.xmlファイルまたはコントローラーメソッドに関連する変更を行う場合。この場合、アップグレードを実行する必要はありません。


1

magento setup:upgradeは、セットアップスクリプトを実行するという意味では、magento 1のn98-magerun sys:setup:runとほぼ同じですが、2.1以来、magento 2の機能に加えて何かを誤解していません。新しく作成したモジュールをアクティブにします。これは、プロダクションモードとデフォルトモードだけでなく、開発者モードでも実行する必要があります。一方、setup:di:compileは「自動生成された」クラスを生成します。これは、開発者モードで自動的に行われるため、本番モードで実行するだけで済みます。

インデックス作成についても、フラットテーブルを有効にしていて、インデックスの影響を受けるエンティティ(製品属性、カテゴリ属性、カテゴリ製品など)のいずれかに変更を加えていない限り、これを行う必要はありません。キャッシュをクリアする必要はありません理論的にはキャッシュが無効になっている場合に実行する必要がありますが、サニティチェックを行うために常に実行しています。セットアップのアップグレードによってキャッシュもクリアされることに注意してください。

これがあなたの質問に答えてくれることを願っています。


0

setup:upgrade モジュールファイルに変更を加えたら、setup:upgradeコマンドを実行する必要があります。

setup:di:compile モジュール/レイアウト構成に変更を加えたら、setup:di:compileコマンドを実行する必要があります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.