การอัปเดตคอร์จาก 8.2 เป็น 8.3 ผ่านผู้แต่ง


9

ฉันกำลังพยายามอัปเดตคอร์ Drupal เป็น 8.3 แต่กำลังประสบปัญหา

ที่ด้านล่างของหน้าคือไฟล์ composer.json ที่ฉันเริ่มต้นด้วย

หากฉันเปลี่ยน "drupal / core": "~ 8.2" => "drupal / core": "~ 8.3" จากนั้นเรียกใช้composer update drupal/core --with-dependenciesฉันจะได้รับปัญหาต่อไปนี้ซึ่งฉันไม่แน่ใจว่าจะแก้ไขได้อย่างไรเนื่องจากไม่มีอยู่ในผู้แต่ง ไฟล์. json ฉันได้รวมไว้ด้านล่าง

Your requirements could not be resolved to an installable set of packages.



   Problem 1
    - drupal/core 8.3.0 requires symfony/psr-http-message-bridge ^1.0 -> satisfiable by symfony/psr-http-message-bridge[1.0.x-dev].
    - drupal/core 8.3.x-dev requires symfony/psr-http-message-bridge ^1.0 -> satisfiable by symfony/psr-http-message-bridge[1.0.x-dev].
    - drupal/core 8.4.x-dev requires symfony/psr-http-message-bridge ^1.0 -> satisfiable by symfony/psr-http-message-bridge[1.0.x-dev].
    - Conclusion: don't install symfony/psr-http-message-bridge 1.0.x-dev
    - Conclusion: don't install drupal/core 8.3.0-rc2
    - Conclusion: don't install drupal/core 8.3.0-rc1
    - Conclusion: don't install drupal/core 8.3.0-beta1
    - Installation request for symfony/psr-http-message-bridge v0.2 -> satisfiable by symfony/psr-http-message-bridge[v0.2].
    - Conclusion: remove symfony/dom-crawler v3.2.6
    - Installation request for drupal/core ~8.3 -> satisfiable by drupal/core[8.3.0, 8.3.0-alpha1, 8.3.0-beta1, 8.3.0-rc1, 8.3.0-rc2, 8.3.x-dev, 8.4.x-dev].
    - Conclusion: don't install symfony/dom-crawler v3.2.6
    - drupal/core 8.3.0-alpha1 requires symfony/dom-crawler >=2.8.13 <3.0 -> satisfiable by symfony/dom-crawler[2.8.x-dev, v2.8.13, v2.8.14, v2.8.15, v2.8.16, v2.8.17, v2.8.18, v2.8.19].
    - Can only install one of: symfony/dom-crawler[2.8.x-dev, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.13, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.14, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.15, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.16, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.17, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.18, v3.2.6].
    - Can only install one of: symfony/dom-crawler[v2.8.19, v3.2.6].
    - Installation request for symfony/dom-crawler (locked at v3.2.6) -> satisfiable by symfony/dom-crawler[v3.2.6].

composer.json ดั้งเดิม

{
"name": "drupal/drupal",
"description": "Drupal is an open source content management platform powering millions of websites and applications.",
"type": "project",
"license": "GPL-2.0+",
"require": {
    "drupal/core": "~8.2",
    "drupal/backup_migrate": "4.x-dev",
    "composer/installers": "^1.0.21",
    "wikimedia/composer-merge-plugin": "~1.3",
    "drupal/console": "^1.0",
    "drupal/file_browser": "^1.0@alpha",
    "enyo/dropzone": "4.2.0",
    "desandro/masonry": "3.3.1",
    "desandro/imagesloaded": "3.1.8",
    "drupal/admin_toolbar": "^1.18",
    "drupal/ctools": "^3.0@alpha",
    "drupal/devel": "^1.0@beta",
    "drupal/migrate_tools": "^3.0",
    "drupal/migrate_plus": "^3.0",
    "drupal/media_entity": "^1.6",
    "drupal/media_entity_document": "^1.1",
    "drupal/media_entity_image": "^1.2",
    "drupal/inline_entity_form": "^1.0@beta",
    "drupal/entity_embed": "^1.0@beta",
    "drupal/entity_browser": "^1.0@beta",
    "paquettg/php-html-parser": "^1.7",
    "drupal/better_exposed_filters": "^3.0@alpha",
    "drupal/workbench_access": "^1.0@alpha",
    "drupal/webform": "^5.0@beta",
    "j7mbo/twitter-api-php": "^1.0",
    "nesbot/carbon": "^1.22",
    "Drupal/userprotect": "^1.0",
    "drupal/config_ignore": "^1.2",
    "Drupal/permissions_by_term": "^1.16",
    "Drupal/views_menu_children_filter": "^1.0@alpha",
    "drupal/sitemap": "^1.2",
    "drupal/xmlsitemap": "^1.0@alpha",
    "drupal/simple_sitemap": "^2.8",
    "drupal/redirect": "^1.0@alpha",
    "drupal/metatag": "^1.0",
    "drupal/acl": "^1.0@alpha",
    "drupal/examples": "1.x-dev",
    "drupal/honeypot": "^1.23",
    "drupal/field_collection": "^1.0@alpha",
    "drupal/dropzonejs": "^1.0@alpha",
    "drupal/embed": "^1.0@RC",
    "drupal/pathauto": "^1.0@RC",
    "drupal/rabbit_hole": "^1.0@beta",
    "drupal/entity_reference_display": "^1.0",
    "drupal/field_group": "^1.0@RC",
    "drupal/layouter": "^1.0",
    "drupal/mailsystem": "^4.1",
    "drupal/mimemail": "^1.0@alpha",
    "drupal/permissions_by_term": "^1.17",
    "drupal/content_access": "1.x-dev",
    "drupal/rules": "^3.0@alpha",
    "drupal/smart_trim": "^1.0",
    "drupal/taxonomy_menu": "^3.3",
    "drupal/token": "^1.0@RC",
    "drupal/typed_data": "^1.0@alpha",
    "drupal/video_embed_field": "^1.4",
    "drupal/views_infinite_scroll": "^1.3",
    "drupal/noreferrer": "^1.1",
    "drupal/system_status": "^2.4",
    "drupal/google_analytics": "^2.1"
},
"replace": {

},
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
    "preferred-install": "dist",
    "autoloader-suffix": "Drupal8"
},
"extra": {
    "_readme": [
        "By default Drupal loads the autoloader from ./vendor/autoload.php.",
        "To change the autoloader you can edit ./autoload.php."
    ],
    "merge-plugin": {
        "include": [
            "core/composer.json"
        ],
        "recurse": false,
        "replace": false,
        "merge-extra": false
    },
    "installer-paths": {
        "modules/contrib/{$name}": [
            "type:drupal-module"
        ],
        "modules/custom/{$name}": [
            "type:drupal-custom-module"
        ],
        "libraries/{$name}": [
            "type:drupal-library"
        ],
        "profiles/contrib/{$name}": [
            "type:drupal-profile"
        ],
        "themes/contrib/{$name}": [
            "type:drupal-theme"
        ],
        "themes/custom/{$name}": [
            "type:drupal-custom-theme"
        ]
    }
},
"autoload": {
    "psr-4": {
        "Drupal\\Core\\Composer\\": "core/lib/Drupal/Core/Composer"
    }
},
"scripts": {
    "pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump",
    "post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess",
    "post-package-install": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup",
    "post-package-update": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup"
},
"dependencies": {
    "backupmigrate/core": "dev-master",
    "psr/log": "dev-master"
},
"repositories": [
    {
        "type": "composer",
        "url":  "https://packages.drupal.org/8"
    },
    {
        "type": "package",
        "package": {
            "name": "desandro/masonry",
            "version": "3.3.1",
            "type": "drupal-library",
            "dist": {
                "url": "https://github.com/desandro/masonry/archive/v3.3.1.zip",
                "type": "zip"
            }
        }
    },
    {
        "type": "package",
        "package": {
            "name": "desandro/imagesloaded",
            "version": "3.1.8",
            "type": "drupal-library",
            "dist": {
                "url": "https://github.com/desandro/imagesloaded/archive/v3.1.8.zip",
                "type": "zip"
            }
        }
    },
    {
        "type": "package",
        "package": {
            "name": "enyo/dropzone",
            "version": "4.2.0",
            "type": "drupal-library",
            "source": {
                "url": "https://github.com/enyo/dropzone",
                "type": "git",
                "reference": "origin/master"
            }
        }
    },
    {
        "type": "vcs",
        "url": "https://github.com/backupmigrate/backup_migrate_core"
    }
]

}


ฉันวิ่งเข้าไปหาเมื่อสัปดาห์ที่แล้วและซ่อมมัน แต่ไม่แน่ใจ 100% ว่าฉันทำอะไรถูกต้อง (ฉันยังใช้ webflo / drupal-core-เข้มงวด) ฉันต้องการที่จะเห็นคำตอบที่ชัดเจนเกี่ยวกับเรื่องนี้
mpdonadio

คำตอบ:


3

คล้ายกับ @rreiss ฉันต้องลบ. ล็อค นี่คือสิ่งที่ได้ผลสำหรับฉัน:

rm -rf vendor && rm -rf docroot/core && rm -rf docroot/modules/contrib && rm -f composer.lock

composer require drupal/core:8.3.1 --update-with-dependencies

บรรทัดที่หนึ่งอาจไม่ซ้ำกับโครงการของคุณยืนยันโดยค้นหาเส้นทางการติดตั้งใน composer.json ของคุณ


1

เพิ่งวิ่งเข้าไปในสิ่งเดียวกันนี้ หากต้องการแก้ไขฉันสำรองข้อมูล / ลบไดเรกทอรี / ผู้จำหน่ายและเรียกใช้ 'การอัปเดตผู้แต่ง' อีกครั้งดังนั้นผู้แต่งจะดาวน์โหลดการอ้างอิงทั้งหมดอีกครั้ง ฉันคิดว่าการพึ่งพาที่ติดตั้งกับที่จำเป็นต้องซิงค์


2
นี่คือวิธีที่ฉันจะแก้ไขปัญหานักแต่งเพลงที่คล้ายกัน ฉันคิดว่ามันเป็น 'โซลูชัน' ที่น่าผิดหวังเพราะมันให้ความรู้สึกเหมือนแฮ็ค หากวัตถุประสงค์ของนักแต่งเพลงคือการจัดการการพึ่งพาของฉันฉันจะคาดหวังว่านักแต่งเพลงจะจัดการกับสิ่งนี้ ตามที่เป็น (ด้วย 'แก้ไข' นี้) นักแต่งเพลงจึงดูเหมือนเป็นเครื่องมือในการติดตั้งการพึ่งพา Drupal ของฉัน อีกครั้งนี้รู้สึกเหมือนแฮ็คที่ยืดเยื้อมานานเพราะนี่ควรจะเป็นการปรับปรุงมากกว่า 'ดาวน์โหลด zip ใหม่และเขียนทับวิธีการติดตั้ง Drupal ที่มีอยู่'
RominRonin

1
ฉันประสบปัญหาเดียวกันและฉันต้องลบ composer.lock .. drupal.org/node/2836351#comment-12056279
rreiss

1

ฉันมีปัญหาที่คล้ายกันมากเมื่อพยายามอัพเกรดจาก 8.3.7 เป็น 8.4.0 ฉันคิดว่าฉันพบผู้กระทำผิด

ในไฟล์ DOCROOT composer.json ฉันเห็นบรรทัดต่อไปนี้:

"merge-plugin": {
    "include": [
        "core/composer.json"
    ],
    "recurse": false,
    "replace": false,
    "merge-extra": false
},

ดังนั้นสิ่งนี้สั่งให้ไฟล์ DOCROOT composer.json เพื่ออ้างถึงcore/composer.jsonไฟล์และยังต้องการการอ้างอิงเหล่านั้น ปัญหาคือมันดูที่การพึ่งพาจากรุ่นที่ติดตั้งในปัจจุบันของคุณDrupal ในขณะที่รุ่นอัพเกรดมีการอ้างอิงใหม่ สิ่งนี้สร้างความขัดแย้งที่เราเห็น

นี่คือวิธีแก้ปัญหาที่ฉันพบซึ่งใช้งานได้ มันไม่จำเป็นต้องลบไฟล์ใด ๆ หรือโมดูล

1) ดาวน์โหลดสำเนาของที่core/composer.jsonไฟล์จากtarball ของรุ่นของ Drupal ที่คุณมีการอัพเกรด

2) ในการติดตั้งปัจจุบันของคุณแทนที่core/composer.jsonไฟล์ที่มีรุ่นใหม่ที่คุณเพิ่งดาวน์โหลด

3) อัปเดตไฟล์ DOCROOT composer.json ของคุณด้วย "drupal / core: ~ 8.xx" (สิ่งที่คุณกำลังอัพเกรดเป็น)

4) เรียกใช้composer update --with-dependenciesตามปกติ เวลานี้การอัปเดตควรดำเนินการต่อ จากนั้นใช้การอัพเดตฐานข้อมูล / เอนทิตีสร้างแคชใหม่และอื่น ๆ

ฉันเป็นผู้ใช้ Windows และเป็นผู้สร้างไซต์แน่นอนยิ่งขึ้นดังนั้นฉันจะไม่ลองโพสต์บรรทัดรับคำสั่งเพื่อทำสิ่งเหล่านี้ใน Linux และฉันไม่แน่ใจว่านี่เป็นทางออกที่ "เหมาะสม" หรือแม้แต่สาเหตุที่โค้ดด้านบนขัดขวางการอัปเกรด แต่นี่คือสิ่งที่ใช้งานได้สำหรับฉัน!


0

เพิ่งสังเกตว่าสิ่งนี้ดูเหมือนจะใช้ได้กับฉันสำหรับการอัปเดตหลักจาก 8.2.3> 8.3.7 หมายเหตุการติดตั้ง Drupal 8 ของฉันใช้สิ่งนี้: https://github.com/drupal-composer/drupal-scaffold ซึ่งมีโครงสร้างไดเรกทอรีนี้:

.git
.gitignore
composer.json
composer.lock
config ของ
สคริปต์
ผู้ขาย
เว็บ

  • วางไซต์ในโหมดบำรุงรักษา: / admin / config / development / maintenance
  • เรียกใช้คำสั่งนี้ในรูทของไซต์: rm -rf vendor && rm -rf web/core && rm -f composer.lock
  • เรียกใช้คำสั่งนี้ในรูทของไซต์: composer require drupal/core:8.3.7 --update-with-dependencies
  • ไปที่ /update.php (หรือdrush updb) และเรียกใช้การอัปเดต มันจะบอกว่ามี 17 ให้ทำงาน มันอาจจะส่งคืนข้อผิดพลาดถ้าเป็นเช่นนั้นให้ไปที่ /update.php และเรียกใช้การอัปเดตอีกครั้ง (คราวนี้มันจะบอกว่ามีน้อยกว่าที่จะเรียกใช้) ไปที่หน้าบ้านเมื่อเสร็จแล้ว
  • ตรวจสอบเว็บไซต์
  • นำไซต์ออกจากโหมดบำรุงรักษา: / admin / config / development / maintenance
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.