Cập nhật lõi từ 8.2 đến 8.3 thông qua trình soạn thảo


9

Tôi đang cố gắng cập nhật lõi Drupal lên 8.3 nhưng đang gặp khó khăn.

Ở dưới cùng của trang là tệp composer.json tôi đang bắt đầu.

Nếu tôi thay đổi "drupal / core": "~ 8.2" => "drupal / core": "~ 8.3" và sau đó chạy, composer update drupal/core --with-dependenciestôi gặp các vấn đề sau mà tôi không chắc cách giải quyết vấn đề này vì chúng không có trong trình soạn thảo tập tin .json tôi đã bao gồm dưới đây.

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].

nhà soạn nhạc gốc.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"
    }
]

}


Tôi đã chạy vào tuần trước và sửa nó, nhưng tôi không chắc chắn 100% những gì tôi đã làm là đúng (tôi cũng sử dụng webflo / drupal-core -rict). Tôi muốn thấy một câu trả lời dứt khoát về điều này.
mpdon Arena

Câu trả lời:


3

Tương tự như @rreiss tôi đã phải xóa .lock. Đây là những gì làm việc cho tôi:

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

dòng một có thể là duy nhất cho dự án của bạn, xác nhận bằng cách tra cứu đường dẫn trình cài đặt trong composer.json của bạn.


1

Chỉ cần chạy vào điều tương tự. Để khắc phục, tôi đã sao lưu / xóa thư mục / nhà cung cấp và chạy lại 'cập nhật trình soạn thảo' để Trình soạn thảo tải xuống lại tất cả các phụ thuộc. Tôi nghĩ rằng phụ thuộc được cài đặt so với yêu cầu ra khỏi đồng bộ hóa.


2
Đây là cách tôi kết thúc việc khắc phục các sự cố Trình soạn thảo tương tự. Tôi thấy đó là một "giải pháp" bực bội vì cảm thấy như một vụ hack. Nếu mục đích của Nhà soạn nhạc là để quản lý các phụ thuộc của tôi thì tôi loại DO mong đợi Nhà soạn nhạc sẽ xử lý loại việc này. Vì nó là (với 'sửa chữa' này), Trình soạn thảo có vẻ giống như một công cụ để CÀI ĐẶT các phụ thuộc Drupal của tôi. Một lần nữa, điều này cảm thấy giống như một cuộc tấn công dài hơi vì đây được coi là một cải tiến so với 'tải xuống zip mới và ghi đè lên phương thức cài đặt Drupal hiện tại'.
RominRonin

1
Tôi đã trải qua vấn đề tương tự và tôi cũng phải xóa nhà soạn
nhạc.lock

1

Tôi gặp vấn đề tương tự khi cố gắng nâng cấp từ 8.3.7 lên 8.4.0. Tôi nghĩ rằng tôi đã tìm ra thủ phạm.

Trong tệp DOCROOT composer.json, tôi thấy các dòng sau:

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

Vì vậy, điều này hướng tệp DOCROOT composer.json tham chiếu đến core/composer.jsontệp và cũng yêu cầu các phụ thuộc đó. Vấn đề là nó đang xem xét các phụ thuộc từ phiên bản Drupal hiện đang cài đặt của bạn, trong khi phiên bản nâng cấp có các phụ thuộc mới. Điều này tạo ra xung đột mà chúng ta đang thấy.

Đây là giải pháp tôi tìm thấy hoạt động. Nó không yêu cầu xóa bất kỳ tập tin hoặc mô-đun.

1) Tải xuống bản sao của core/composer.jsontệp từ tarball của phiên bản Drupal bạn đang nâng cấp lên .

2) Trong cài đặt hiện tại của bạn, thay thế các core/composer.jsontập tin với các phiên bản mới, bạn chỉ cần tải về.

3) Cập nhật tệp DOCROOT composer.json của bạn với "drupal / core: ~ 8.xx" (bất cứ điều gì bạn đang nâng cấp lên).

4) Chạy composer update --with-dependenciesnhư bình thường. Lần này, việc cập nhật nên tiến hành. Sau đó áp dụng cập nhật cơ sở dữ liệu / thực thể, xây dựng lại bộ đệm, v.v.

Tôi là người dùng Windows và chắc chắn là người xây dựng trang web nhiều hơn, vì vậy tôi thậm chí sẽ không thử đăng lời nhắc dòng lệnh để thực hiện những điều này trong Linux. Và tôi không chắc đây có phải là một giải pháp "phù hợp" hay thậm chí tại sao đoạn mã trên lại chặn việc nâng cấp, nhưng đây là điều làm việc cho tôi!


0

Chỉ cần lưu ý rằng điều này dường như hoạt động với tôi để cập nhật cốt lõi từ 8.2.3> 8.3.7. Lưu ý cài đặt Drupal 8 của tôi đã sử dụng điều này: https://github.com/drupal-composer/drupal-scaffold có cấu trúc thư mục này:

.git
.gitignore
composer.json
composer.lock
config
script
nhà cung cấp
web

  • Đặt trang web vào chế độ bảo trì: / admin / config / Development / bảo trì
  • Chạy lệnh này trong thư mục gốc của trang web: rm -rf vendor && rm -rf web/core && rm -f composer.lock
  • Chạy lệnh này trong thư mục gốc của trang web: composer require drupal/core:8.3.7 --update-with-dependencies
  • Truy cập /update.php (hoặc drush updb) và chạy các bản cập nhật. Nó sẽ nói có 17 để chạy. Nó có thể sẽ trả về lỗi, nếu vậy, hãy truy cập /update.php và chạy lại các bản cập nhật (lần này nó sẽ nói có ít hơn để chạy). Tới trang chủ khi nó được thực hiện.
  • Kiểm tra trang web.
  • Đưa trang web ra khỏi chế độ bảo trì: / admin / config / Development / bảo trì
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.