Làm cách nào để cập nhật mô-đun Drupal trong một phiên bản cụ thể?

Việc nâng cấp từ drupal 8 lên drupal 9 cần được thực hiện với nhà soạn nhạc. Hướng dẫn này screencast và bài đăng trên blog có thể hướng dẫn bạn

Ghi hình

điều kiện tiên quyết

Bước 1. xóa drupal/bảng điều khiển

Để bắt đầu, trước tiên hãy đảm bảo bạn xóa drupal/console [. ]. Điều này sẽ ngăn bạn gặp vòng lặp trong phần phụ thuộc cho gói symfony

composer remove drupal/console

Bước 2. xóa drupal/core và/hoặc drupal/core-recommended khỏi nhà soạn nhạc. json

Tìm kiếm drupal/core-recommended hoặc drupal/core trong com Composer. json và xóa [các] dòng

"drupal/core-recommended": "^8.9.0"

Sau đó chạy lại bản cập nhật của nhà soạn nhạc

composer update

Điều này sẽ loại bỏ lõi drupal khỏi cài đặt của bạn, nhưng cập nhật phần đóng góp cần thiết đang gây ra nhiều mâu thuẫn và ràng buộc gói sh*it;]

Nếu bạn có drush và devel, được sử dụng rộng rãi, hãy chỉnh sửa các phiên bản theo cách thủ công

"drupal/devel": "^4.0",
"drush/drush": "^10.0.0",

Bước 3. thêm drupal/core-recommended. 9. 0. 0

Nếu bạn không thêm dòng này và cập nhật, chúng tôi sẽ đến đó. Đầu tiên, phiên bản đầu tiên của drupal 9

"drupal/core-recommended": "9.0.0",
composer update

Điều này dẫn đến cho tôi trong những điều sau đây

Problem 1
    - drupal/core 8.0.0-beta6 requires doctrine/common dev-master#a45d110f71c323e29f41eb0696fa230e3fa1b1b5 -> found doctrine/common[2.1.3, ..., 2.13.x-dev, 3.0.0, ..., 3.2.x-dev] but it does not match the constraint.
    - drupal/swiftmailer[1.0.0-beta1, ..., 1.0.0-beta2] require drupal/core ~8.0 -> satisfiable by drupal/core[8.0.0-beta6, ..., 8.9.x-dev].
    - You can only install one version of a package, so only one of these can be installed: drupal/core[8.0.0-beta6, ..., 8.9.x-dev, 9.0.0-alpha1, 

Như nó xuất hiện, có sự không tương thích với drupal/swiftmailer.  

Bước 4. xóa các mô-đun có vấn đề khỏi nhà soạn nhạc. json

Ở trên, chúng tôi đã thấy rằng có sự cố với drupal/swiftmailer. Tôi xóa dòng này khỏi nhà soạn nhạc

"drupal/swiftmailer": "^1.0@beta",
composer update

Sau đó, tôi gặp phải vấn đề này với drupal/recaptcha. Lặp lại bước xóa các dòng này trong trình soạn thảo. json

Có drupal 9

Cuối cùng, chúng tôi thấy drupal 9 của chúng tôi đến.  

  - Updating twig/twig [v1.42.5 => v2.12.5]: Loading from cache
  - Updating symfony/yaml [v3.4.41 => v4.4.9]: Loading from cache
  - Downgrading symfony/polyfill-php80 [v1.20.0 => v1.17.0]: Loading from cache
  - Updating symfony/var-dumper [v4.4.17 => v5.1.0]: Loading from cache
  - Installing symfony/translation-contracts [v2.1.2]: Loading from cache
  - Updating symfony/validator [v3.4.41 => v4.4.9]: Loading from cache
  - Updating symfony/translation [v3.4.41 => v4.4.9]: Loading from cache
  - Installing symfony/service-contracts [v2.1.2]: Loading from cache
.........

Bước 5. yêu cầu các mô-đun có vấn đề

Ở bước 4, chúng tôi đã xóa một số mô-đun gây ra sự cố cho bản nâng cấp D9 của tôi. Bây giờ D9 cuối cùng đã ở đó, chúng tôi thêm lại chúng

"drupal/core-recommended": "^8.9.0"
0

Đối với linkit, tôi phải yêu cầu một phiên bản cụ thể để nó hoạt động

"drupal/core-recommended": "^8.9.0"
1

Bước 6. nâng cấp lên phiên bản drupal 9 mới nhất

Chúng tôi hiện đang sử dụng Drupal 9. 0. 0. Thực hiện cập nhật cơ sở dữ liệu của bạn trước

"drupal/core-recommended": "^8.9.0"
2

Sau này, thay đổi dòng drupal/core-recommended của bạn trong trình soạn thảo. json để

"drupal/core-recommended": "^8.9.0"
3

Và cập nhật lại [đừng quên thực hiện lại drush updb sau này]

composer update

[chú thích ở đây. trong sản xuất, không phải lúc nào cũng có thể nâng cấp lên 9. 0. 0 đầu tiên. Nó cũng hoạt động để đẩy trực tiếp nhà soạn nhạc drupal 9 đang hoạt động của bạn. json để sản xuất và nâng cấp từ 8. 9. x đến 9. 2 rồi chạy cập nhật cơ sở dữ liệu]

Giải quyết các vấn đề khác có thể xảy ra

lệnh tại sao

Có một lệnh 'tại sao' để biết thêm thông tin về nguồn gốc của các phụ thuộc

"drupal/core-recommended": "^8.9.0"
5


Trong trường hợp này, rõ ràng devel và drush là những thứ cần được cập nhật. Chúng tôi thêm chúng vào lệnh cập nhật của mình và chạy lại

"drupal/core-recommended": "^8.9.0"
6

nhà soạn nhạc 2

Gần đây tôi đã vấp phải vấn đề về nhà soạn nhạc 2 sau đây

"drupal/core-recommended": "^8.9.0"
7

Dung dịch. thêm phần này vào nhà soạn nhạc của bạn. json

"drupal/core-recommended": "^8.9.0"
8

và chạy

composer update

Chuyển các mô-đun tùy chỉnh của bạn

Chúng tôi đã cập nhật cài đặt của mình, nhưng điều này không có nghĩa là mã tùy chỉnh của chúng tôi tương thích. May mắn thay, có một cách đơn giản để kiểm tra. Gói kiểm tra drupal sẽ kiểm tra mã của bạn

composer update
0

Bây giờ chạy

composer update
1

Kết quả như sau

composer update
2

Bây giờ tôi cần kiểm tra các dòng của mô-đun tùy chỉnh này và sửa chúng cho Drupal 9. Làm tương tự cho chủ đề tùy chỉnh của bạn

composer update
3

Trong các mô-đun tùy chỉnh của bạn, để bắt đầu, hãy thay đổi ràng buộc phiên bản từ

composer update
4

đến

composer update
5

Phần kết luận

Nó khó hơn dự kiến ​​và bạn nên đảm bảo rằng tất cả các mô-đun tùy chỉnh và đóng góp của mình đã sẵn sàng

Khi bạn hiểu rõ hơn về nhà soạn nhạc, bạn sẽ nhận ra điều gì đang xảy ra.  

Đối với tôi, đây cũng là một lời cảnh báo rằng bạn nên sử dụng các mô-đun ít đóng góp nhất có thể và bám vào cốt lõi

Vẫn không làm việc?

Thậm chí nhiều khả năng khắc phục sự cố hơn

Có lỗi dưới đây? . từ nhà soạn nhạc của bạn. json. Sẽ đi kèm với drupal/core-recommended [nếu cần]

composer update
6

Bật báo cáo lỗi chi tiết để gỡ lỗi màn hình trắng "lỗi không mong muốn". https. //stefvanlooveren. me/blog/how-debug-and-enable-php-error-reporting-drupal-8

Làm cách nào để nâng cấp D8 lên D9?

Các bước thực hiện nâng cấp D8 lên D9 .
Đáp ứng yêu cầu hệ thống. Đảm bảo máy chủ của bạn hỗ trợ các yêu cầu hệ thống cho Drupal 9. .
Chạy trạng thái nâng cấp. .
Nhận các phiên bản mới nhất. .
Nâng cấp mã tùy chỉnh. .
Nâng cấp lõi lên Drupal 9

Làm cách nào để nâng cấp Drupal 8 lên Drupal 9?

Hoặc kiểm tra thủ công tất cả các mô-đun và chủ đề đóng góp hoặc cài đặt mô-đun Trạng thái nâng cấp sẽ thực hiện kiểm tra cho bạn . Để kiểm tra thủ công xem một mô-đun có tương thích với Drupal 9 hay không, hãy chuyển đến phần Báo cáo -> Các bản cập nhật có sẵn, nhấp vào liên kết mô-đun và kiểm tra xem mô-đun đó đã sẵn sàng cho Drupal 9 chưa.

Chủ Đề