Magento 2:どのコマンドをいつ実行する必要がありますか?


20

私が取り組んできましたMagentoの2今2ヶ月。bin/magento setup:upgradeあまりにも使いすぎていることに気づきました。そのコマンドいつ実行する必要があるのかわからないと思います。

上記のコマンドを実行する状況を次に示します。

  • 新しいモジュールを作成すると、
  • セットアップディレクトリに何かを追加すると、
  • 編集するときetc/module.xml
  • 編集するときetc/di.xml
  • 編集するときetc/webapi.xml
  • 編集するとき etc/adminhtml/system.xml

質問:bin/magento setup:upgradeコマンドを実行する必要があるのはどのような状況ですか?

私が尋ねている理由は、そのコマンドを完了するのに時間がかかるということです。不必要に使用をやめれば、生産性を本当に改善できると思います。

回答:


42

続きを読む:Mageprinceブログ

あなただけのsetup:upgradeコマンドを実行する必要があります

1.セットアップスクリプト(InstallData、InstallSchema、
UpgradeData、UpgradeSchemaなど)で変更を行ったとき

2.初めてMagentoをインストールする場合。

3.新しいモジュールのインストール時

4. magentoバージョンをアップグレードした後。

setup:upgradeコマンドは何をしますか

1)setup_moduleテーブルのモジュールバージョンを確認する

2) module.xmlでバージョンが利用できないか、新しいバージョンが追加された場合、セットアップスクリプトが実行され、テーブルに最新のバージョン番号が追加されます

あなたが変更した場合はHTML、CSS、JS、...ファイルあなたがから特定の変更されたファイルを削除する必要があるpub/staticフォルダまたはこのコマンドを実行します

php bin / magento setup:static-content:deploy

短い形式: php bin / magento s:s:d

あなたは変更が気に入った場合は__construct()またはの変化に新たな依存関係を追加しdi.xml、あなたがから変更したファイルを削除する必要があるvar/generationフォルダまたはこのコマンドを実行します

php bin / magento setup:di:compile

短い形式: php bin / magento s:d:c

管理設定、レイアウトxml、uiコンポーネント、phtml、...ファイルに変更を加えた場合キャッシュの消去またはフラッシュのみが必要です。

php bin / magento cache:flush

短い形式: php bin / magento c:f


3

1.新しいモジュールを作成するとき:

2.セットアップディレクトリに何かを追加するとき

3. etc / module.xmlを編集するとき

php bin/magento module:enable
php bin/magento setup:upgrade

4. etc / module.xmlを編集すると、

5. etc / di.xmlを編集すると、

6. etc / webapi.xmlを編集すると、

7. xmlの変更のために etc / adminhtml / system.xmlを編集 するとき、キャッシュのフラッシュは十分すぎるほどです:

php bin/magento cache:flush

cssおよびjsの変更:-キャッシュをフラッシュし、 php bin/magento setup:static-content:deploy


私の知る限りsetup:upgrade、の代替として実行できますmodule:enable
ジョシュア洪水

これらのコマンドを1で組み合わせたスクリプトはありますか?
snh_nl

2

開発者モードで作業しcompilている場合xml、変更時にeを入力する必要はありませんsetup:upgrade

その他の変更などのためにcssphtmljs、唯一flush cache、あなたがする必要はありません静的なコンテンツを展開します


いいえ、setup:upgradexmlの変更のために実行する必要はありません。詳細については、上の回答を参照してください:)
パテル王子

1

データベースを変更するたびに、 bin / magento setup:upgradeを実行するだけです

たとえば、属性を(プログラムで)作成している場合、新しいモジュール、バージョンのアップグレードなど。

したがって、覚えておくべき基本的なルールは、コードがデータベースに変更を加えることがわかっている場合は、setup:upgradeコマンドを実行することです。


DOESはphp bin/magento setup:upgrade廃止され、セットアップのcronジョブを作りますか?ここでは毎分実行するcronjobとしてログに記録されるため、混乱しています。devdocs.magento.com
guides/v2.3/

1

プロセスを自動化できるbashファイルを作成しました。

magentoフォルダーに「vi magento_bash」と入力して、以下のコードをコピーして貼り付けます。エスケープして:wqでファイルを保存し、これが役立つことを願ってください。注:以下のファイルは、一度に1つのコマンドのみを取ります。

#!/bin/sh

mainmenu()
{

echo 'Press 1 if you have created a new module'

echo 'Press 2 if you have changed HTML, CSS, JS..'

echo 'Press 3 if you have made changes like add new dependency in __construct() or changes in di.xml'

echo 'Press 4 if you have made changes like admin configuration, layout xml, ui component, phtml'

read -n 1 -p "Input Selection:" mainmenuinput

if [ "$mainmenuinput" = "1" ];
then
    cd src
    php bin/magento setup:upgrade
elif [ "$mainmenuinput" = "2" ];
then
    cd src
    php bin/magento s:s:d en_AU en_US
elif [ "$mainmenuinput" = "3" ];
then
    cd src
    php bin/magento setup:di:compile
elif [ "$mainmenuinput" = "4" ];
then
    cd src
    php bin/magento cache:flush
else
    echo 'You have selected an invalid selection'
fi
}

mainmenu

ssdコマンドの背後にあるen_AU en_US?
snh_nl

0

コードを手動でデプロイする場合。上記のすべての方法は、時間を節約するのに十分です。

Jenkinsまたは他のツールを使用して自動展開する場合は、ツールが何をしたのか、どのファイルが変更されたのかわからないため、すべてのコマンドを実行する必要があります。

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