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"
1Bướ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"
2Sau 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"
3Và 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"
6nhà 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"
7Dung 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"
8và 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
0Bây giờ chạy
composer update
1Kết quả như sau
composer update
2Bâ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
3Trong 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
5Phầ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
6Bậ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