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

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

지우기 vargenerated하위 디렉토리 :

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.