composer를 사용하여 Magento2를 업데이트하는 방법


38

composer를 사용하여 magento2 ce를 업데이트 할 수없는 것 같습니다. 업데이트를 찾지 못했습니다. 발견 된 유일한 것은 'fabpot'입니다.

필자는 이것이 작곡가 설정의 요점이라고 생각했기 때문에 설명서에 설명 된대로 백엔드를 사용하려는 이유는 다음과 같습니다. http://devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade -start.html

아니면 뭔가 빠졌습니까?

도움을 주셔서 감사합니다.


편집하다:

http://devdocs.magento.com/guides/v2.0/install-gde/prereq/integrator_install.html#integrator-first-composer-ce에 설명 된대로 공식 문서에 따라 작성기를 통해 Magento2를 설치했습니다.

문제는 composer.json 파일이 composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>.json의 필수 섹션 아래에 정의 된 magento 명령을 사용 하여 가져온다는 것입니다.

"require": {
    "magento/product-community-edition": "2.0.0",
    "composer/composer": "@alpha",
    "firegento/magesetup2": "dev-develop",
    "splendid/de_de": "^0.0.1"
},

보시다시피, 버전 2.0.0이 지정되었습니다.

업데이트가 작동하려면 다음과 같이 .json 파일에서 해당 줄을 수동으로 변경해야했습니다.

 "magento/product-community-edition": "2.*",

이제 실행 composer update하면 모든 모듈이 버전 100.0.2에서 100.0.3으로 업데이트되었습니다.

다음과 같은 이유로 여전히 오류 예외가 발생합니다.

[ErrorException]                             
  Source /home/dev/git/mysite/vendor/magento/magento2-base/app/design/frontend/Magento does not exist

이제 bin / magento 파일과 같이 몇 가지 필수 요소가 누락 된 것 같습니다.

누구나 올바르게 작동하여 실제로 작동하는 방법에 대한 아이디어가 있습니까?


packagist를 통해 2.0을 설치 한 경우 2.0.1에 문제가 있습니다. repo.magento.com을 composer.json에 추가하고 auth.json 파일의 관련 인증 정보를 추가하십시오.
— Maddy

composer를 사용하여 magento 2를 업그레이드하려면 명령 줄에 대한 많은 기술 지식이 필요했습니다. 기술에 정통하지 않다면 관리자, magento Commerce를 통해 업그레이드하십시오. 때때로 누락 된 종속성으로 인해 composer 메소드가 실패했습니다.
— D. Joes

답변:


58

루트 폴더에서 composer.json 파일을 편집하고 5 행에서 magento 버전을 변경하십시오.

"version": "2.0.1",

"필수"아래

"require": {
"magento/product-community-edition": "2.0.1",

이제 다음을 실행하십시오.

composer update

그런 다음 다음을 실행하십시오.

php bin/magento setup:upgrade

마지막으로 정적 파일을 다시 배포하십시오.이 명령은 다음과 같습니다.

php bin/magento setup:static-content:deploy de_DE en_US

그것은 나를 위해 일했다.


매우 감사합니다, 이것은 많은 도움이되었습니다! 약 일주일 동안 업데이트하는 방법을 찾고있었습니다. 독일에서 인사드립니다!
— Java_Waldi

좋은 답변입니다. 주어진 단계는 매우 간단합니다.
— Maniprakash Chinnasamy

5
공급 업체 디렉토리를 비울 필요는 없습니다.
— mniess

업데이트 명령이 실행되면 다음 오류가 표시됩니다. [Symfony \ Component \ Console \ Exception \ CommandNotFoundException] "composer"명령이 정의되지 않았습니다.
— Lovely Setia

42

업데이트 / 업그레이드 젠토 2.0.5에 (비아 composer)

php bin/magento maintenance:enable
composer require magento/product-community-edition 2.0.5 --no-update
composer update
rm -rf var/di var/generation
php bin/magento cache:flush
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento indexer:reindex
php bin/magento maintenance:disable

업그레이드 후 다음 명령으로 Magento 버전을 확인하십시오.

php bin/magento --version

마 젠토 2.3.x로 업그레이드

위의 명령은 Magento를 2.2.x로 업그레이드하는 동안 제대로 작동합니다.

Magento 2.3.x로 업그레이드하려면 몇 가지 추가 단계를 수행해야합니다.

Magento를 2.3.x로 업그레이드하기위한 단계별 가이드는 다음과 같습니다.

유지 보수 모드 사용

php bin/magento maintenance:enable

마 젠토 패키지 지정

composer require magento/product-community-edition=2.3.0 --no-update

추가 패키지 지정

composer require --dev phpunit/phpunit:~6.2.0 friendsofphp/php-cs-fixer:~2.10.1 lusitanian/oauth:~0.8.10 pdepend/pdepend:2.5.2 sebastian/phpcpd:~3.0.0 squizlabs/php_codesniffer:3.2.2 --no-update

사용하지 않는 패키지 제거

composer remove --dev sjparkinson/static-review fabpot/php-cs-fixer --no-update

자동로드 업데이트

다음을 포함 composer.json하도록 "autoload": "psr-4"섹션을 열고 편집하십시오 "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/".

"autoload": {
    "psr-4": {
        "Magento\\Framework\\": "lib/internal/Magento/Framework/",
        "Magento\\Setup\\": "setup/src/Magento/Setup/",
        "Magento\\": "app/code/Magento/",
        "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
    },
    ...
}

업데이트 적용

composer update

마 젠토 캐시 청소

php bin/magento cache:clean

캐시 및 생성 된 컨텐츠 수동 지우기

지우기 var및 generated하위 디렉토리 :

rm -rf <Magento install dir>/var/cache/*
rm -rf <Magento install dir>/var/page_cache/*
rm -rf <Magento install dir>/generated/code/*

파일 시스템 이외의 캐시 스토리지 (예 : Redis 또는 Memcached)를 사용하는 경우 캐시도 수동으로 지워야합니다.

데이터베이스 스키마 및 데이터 업데이트

php bin/magento setup:upgrade

유지 관리 모드 비활성화

php bin/magento maintenance:disable

마지막으로 Magento 버전을 확인하십시오.

php bin/magento --version

더 읽기 : https://devdocs.magento.com/guides/v2.3/comp-mgr/cli/cli-upgrade.html


2
이것은 잘 작동했습니다 :)
— Arvind07

1
당신은 할 필요가 n98-magerun2 setup:static-content:deploy en_US없습니까?
— Jeroen Vermeulen-마법사 호스트

1
나에게 명령은 composer require모든 것을 망쳤다. magento명령도 없습니다 bin.
— Dyin

1
단계를 수행 한 후 "Magento는 7.0.2, 7.0.4 및 7.0.6 이상을 지원합니다. devdocs.magento.com/guides/v1.0/install-gde/…를 읽어 보십시오. "PHP 7.1.11이 있습니다.
— Wasiq Shahrukh

3
이 답변이 다른 사람보다 더 유용하다는 것을 알았습니다. 다양한 사소한 M2 버전을 문제없이 업그레이드하는 데 이미 4 번 사용했습니다. 이것을 찬성하라 !!
— Kalpesh

15

composer를 통해 업그레이드 할 때 composer 업그레이드를 통해 업그레이드해야하는 버전을 선택할 수 있습니다. 예를 들면 다음과 같습니다.

composer require magento/product-community-edition 2.1.2 --no-update

Enterprise를 사용하는 경우 동일한 명령을 실행할 수 있습니다. 예를 들면 다음과 같습니다.

composer require magento/product-enterprise-edition 2.0.6 --no-update

관련 명령을 실행 한 후 다음을 실행하십시오.

composer update

composer가 완료되면 다음 명령을 실행하여 데이터베이스를 업그레이드하십시오.

php bin/magento setup:upgrade 

그 어느 때보 다 데이터베이스를 백업하고 git과 같은 버전 관리 도구를 사용하여 계획하지 않을 업그레이드로부터 자신을 보호하십시오.


안녕하세요, 귀하의 의견을 참조하고 오류가 발생했습니다. 아래 오류를 볼 수 있습니다. 요청 된 패키지 magento / product-enterprise-edition 2.0.6은 magento / product-enterprise-edition [2.0.2]로 존재하지만 제약 조건에 의해 거부됩니다. 이 문제를 해결하는 데 도움을 줄 수 있습니까?
— Kartik Asodariya

7

샘플 데이터로 Magento 2.0.x를 업데이트하기 위해 다음 단계를 따랐습니다 (2.1 RC로 업데이트하도록 작동).

  1. 이 커밋을 수동으로 적용하십시오 (2.1과 함께 릴리스 된 샘플 데이터의 버그 수정입니다)
  2. 마 젠토에서 샘플 데이터 모듈 재설정

    bin/magento sampledata:reset
  3. 종속성을 즉시 업데이트하지 않고 composer.json을 업데이트하십시오 (이전 magento 모듈 버전이 여전히 잠겨 있기 때문에 충돌이 발생 함). 2.0.7의 경우 :

    composer require --no-update magento/product-community-edition ~2.0.7

    또는 최신 2.1 릴리스 후보

    composer require --no-update magento/product-community-edition 2.1.0-rc3
  4. [> = 2.1로 업데이트하는 경우에만 해당] 샘플 데이터 모듈을 composer.json다음 에서 제거하십시오 .

    "magento/module-bundle-sample-data": "100.0.*",
    "magento/module-theme-sample-data": "100.0.*",
    "magento/module-widget-sample-data": "100.0.*",
    "magento/module-catalog-sample-data": "100.0.*",
    "magento/module-customer-sample-data": "100.0.*",
    "magento/module-cms-sample-data": "100.0.*",
    "magento/module-catalog-rule-sample-data": "100.0.*",
    "magento/module-sales-rule-sample-data": "100.0.*",
    "magento/module-review-sample-data": "100.0.*",
    "magento/module-tax-sample-data": "100.0.*",
    "magento/module-sales-sample-data": "100.0.*",
    "magento/module-grouped-product-sample-data": "100.0.*",
    "magento/module-downloadable-sample-data": "100.0.*",
    "magento/module-msrp-sample-data": "100.0.*",
    "magento/module-configurable-sample-data": "100.0.*",
    "magento/module-product-links-sample-data": "100.0.*",
    "magento/module-wishlist-sample-data": "100.0.*",
    "magento/module-swatches-sample-data": "100.0.*",
    "magento/sample-data-media": "100.0.*",
    "magento/module-offline-shipping-sample-data": "100.0.*",
    
  5. 실제 작곡가 업데이트를 실행하십시오.

    composer update
  6. [> = 2.1로 업데이트하는 경우에만 해당] 샘플 데이터를 다시 설치하십시오 ((2)에서 패치를 다시 적용해야 할 수도 있음).

    bin/magento sampledata:deploy

내가 명령을 실행할 때 composer update의이 사용자 이름과 암호가 무엇인지, 사용자 이름과 암호를 묻는 당신은 저를 인도 할 수있는 경우
— amit_game

안녕하세요 @amit_game : 어떤 이유로 repo.magento.com 저장소에는 인증이 필요합니다. 다음 설명서를 사용하여 marketplace.magento.com 에서 인증 키를 만들 수 있습니다 . devdocs.magento.com/guides/v2.0/install-gde/prereq/…
— tecjam

0

단계별 다음 명령 실행

composer require magento/product-community-edition 2.1.6 --no-update
composer update
rm -rf var/di var/generation
php bin/magento cache:flush
php bin/magento setup:upgrade
php bin/magento setup:di:compile(Optional)
php bin/magento indexer:reindex
chmod -R 777 var
php bin/magento setup:static-content:deploy

업그레이드 후 다음 명령으로 Magento 버전을 확인하십시오.

php bin/magento --version

0

어쩌면 뭔가 빠진 것일 수도 있습니다. 먼저 상점을 SSH로 연결하십시오. 이제 상점의 루트 디렉토리로 이동하십시오.

모든 명령을 하나씩 실행하십시오.

composer require magento/product-community-edition 2.1.3 --no-update

composer update

rm -rf var/di/* var/generation/* var/cache/* var/log/* var/page_cache/*

php bin/magento cache:clean

php bin/magento cache:flush

php bin/magento setup:upgrade

php bin/magento setup:di:compile

php bin/magento indexer:reindex

나는 이미 내 자신의 질문에 대답했습니다. 감사합니다. 보시다시피 magento 2.0의 첫 번째 릴리스에서 문제가 발생했습니다. 설명서 및 문제가 수정되었습니다. 서버에서 직접 작곡가 업데이트를 수행하지 않을 것입니다.
— tecjam

0

하나는 두 가지 기본 방법을 사용하여 magento 2를 업그레이드 할 수 있습니다. 하나는 관리자 패널에서 작성하고 다른 하나는 composer를 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.