마 젠토 2 : 언제 어떤 명령을 실행해야합니까?


20

나는 2 개월 동안 Magento 2 와 함께 일해 왔습니다 . bin/magento setup:upgrade너무 많이 사용하고 있음을 깨달았습니다 . 그 명령 언제 실행 해야하는지 모르겠습니다 .

위에서 언급 한 명령을 실행하는 상황은 다음과 같습니다.

  • 새 모듈을 만들면
  • Setup 디렉토리에 무언가를 추가하면
  • 내가 편집 etc/module.xml하면
  • 내가 편집 etc/di.xml하면
  • 내가 편집 etc/webapi.xml하면
  • 편집 할 때 etc/adminhtml/system.xml

질문 : 어떤 상황에서 bin/magento setup:upgrade명령 을 실행해야 합니까?

( 내가 묻는 이유는 명령을 완료하는 데 약간의 시간이 걸리기 때문입니다. 불필요하게 사용을 중단하면 생산성을 실제로 향상시킬 수 있다고 생각합니다. )

답변:


43

더 읽기 : 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 설정 : 정적 내용 : 배포

짧은 형식 : PHP bin / magento s : s : d

__construct ()에서 새 종속성 추가 또는의di.xml 변경과 같은 변경을 수행 한 경우 var/generation폴더 에서 변경된 파일을 삭제 하거나이 명령을 실행해야합니다.

PHP bin / magento 설정 : di : compile

짧은 형식 : PHP bin / magento s : d : c

당신이 변화 한 경우 관리자 구성, 레이아웃 XML, UI 요소, PHTML ... 파일 만 청소하거나 캐시 플러시 필요

PHP 빈 / 마 젠토 캐시 : 플러시

짧은 형식 : PHP bin / magento c : f


3

1. 새 모듈을 만들 때 :

2. Setup 디렉토리에 무언가를 추가하면

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.
Joshua 홍수

이 명령들을 1로 결합한 스크립트가 있습니까?
snh_nl

2

당신이 작업하는 경우 개발자 모드 당신이 필요하지 않습니다 compil당신이 수정할 때 전자 xml, 당신은 단지를 만들 수 있습니다 setup:upgrade.

그리고 같은 다른 수정을 위해 css, phtml, jsflush cache, 당신은 할 필요가 없습니다 정적 콘텐츠를 배포 .


아니요, setup:upgradeXML 수정 을 위해 실행할 필요는 없습니다 . 자세한 내용은 상단 답변을 참조하십시오 :)
Prince Patel

1

데이터베이스에서 수정할 때마다 bin / magento setup : upgrade를 실행 하면됩니다.

예를 들어 속성을 프로그래밍 방식으로 작성하는 경우 새 모듈, 버전 업그레이드 등

따라서 기본 규칙은 코드가 데이터베이스에서 수정 될 것임을 알고 있으면 setup : upgrade 명령을 실행하는 것입니다.


합니까 php bin/magento setup:upgrade설치 CRON 작업이 쓸모 만들? 매분 마다 devdocs.magento.com/guides/v2.3/comp-mgr/module-man/
snh_nl

1

프로세스를 자동화 할 수있는 bash 파일을 만들었습니다.

magento 폴더에 'vi magento_bash'를 입력하고 아래 코드를 붙여 넣습니다. 이스케이프 및 : wq로 파일을 저장하고 희망이 있으면 입력하십시오. 참고 : 아래 파일은 한 번에 하나의 명령 만 사용합니다.

#!/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.