แม้ว่าการอัปเกรดจาก Drupal 9 ไปเป็น Drupal 10 จะมีวิธีการคล้ายกับการอัปเกรดจาก Drupal 8 เป็น Drupal 9 แต่ก็จะมีรายละเอียดหลายอย่างที่ต้องทำความเข้าใจและเตรียมตัวก่อนการอัปเกรด Drupal 10
ในการอัปเกรดจาก Drupal 8 เป็น Drupal 9 โครงสร้างเบื้องหลังยังเหมือนกันแทบจะทุกอย่าง แต่สำหรับการอัปเกรด Drupal 9 เป็น Drupal 10 มีการเปลี่ยนแปลงโปรแกรมเบื้องหลังหลายอย่าง (อ่านเพิ่มเติม Drupal 10 ออกตัวเต็ม มีของใหม่หลายอย่าง แต่ก็ตัดของเก่าหลายอย่างเช่นกัน)
เตรียมตัว Drupal 9 ก่อนทำการอัปเกรดเป็น Drupal 10
สิ่งสำคัญที่ต้องดำเนินการก่อนการอัปเกรดเป็น Drupal 10 คือ ต้องอัปเดท Drupal 9 ให้เป็นเวอร์ชั่นล่าสุดเสียก่อน ปัจจุบันคือ Drupal 9.5.9 (อ่านเพิ่มเติม วิธีอัปเดท Drupal 8/9 ให้เป็นเวอร์ชั่นล่าสุด)
ตรวจความพร้อมด้วย Upgrade Status
ในการตรวจสอบว่าเว็บ Drupal 9 นั้นพร้อมในการอัปเกรดเป็น Drupal 10 หรือไม่ สามารถใช้ module ชื่อ Upgrade Status ในการตรวจสอบ โดย Upgrade Status จะบอกว่า ต้องแก้ไขอะไรบ้าง เช่น theme ที่ใช้งานอยู่ รองรับกับ Drupal 10 หรือไม่ หรือ module ตัวไหนที่ต้องเอาออก หรือ ต้องอัปเดทให้รองรับ Drupal 10
ติดตั้ง Upgrade Status ด้วยคำสั่ง composer
composer require 'drupal/upgrade_status:^4.0'
จากนั้นเปิดการทำงานของ Upgrade Status ในหน้าจัดการ module เหมือน module อื่นๆ
ในหน้า Reports > Upgrade Status จะบอกว่า module ไหน ไม่ได้ไปต่อ ให้ทำการลบออกก่อน อาทิ CKEditor, Color, Quick Edit และ RDF รวมถึง theme รุ่นเก่า เช่น Stable และ Classy เป็นต้น
ทั้งนี้ ก่อนที่จะทำการลบ module CKEditor (ซึ่งของเก่าจะเป็น เวอร์ชั่น 4) ให้ทำการเปิดใช้งาน module ชื่อ CKEditor5 เสียก่อน จากนั้นให้ไปแก้ไขในเมนู Text formats and editors เพื่อเปลี่ยนการใช้งานจาก CKEditor เป็น CKEditor5 ให้หมด จากนั้นค่อยย้อนไปลบ module CKEditor อันเก่าออกไป
สำหรับ theme รุ่นเก่า หากในอดีตเคยมีการใช้ theme ที่อ้างอิงกับ Stable และ Classy จะต้องทำการ uninstall ออกเสียก่อน แต่ว่าในหน้า Appearance บางทีจะมองไม่เห็น theme ที่ต้องการลบ ให้เข้าไปแก้ไขในไฟล์ .info.yml ของแต่ละธีม แล้วลบคำสั่ง hidden: true ออกก่อน ถึงจะสามารถมองเห็นในหน้า Appearance แล้วทำการ uninstall theme นั้นออกไป
ทำการสลับไปใช้งาน theme มาตรฐาน Olivero ก่อนการอัปเกรด แล้วลบไฟล์ theme อื่นๆ ที่ไม่ได้ใช้ในโฟลเดอร์ /themes
คำสั่ง composer ในการอัปเกรด Drupal 9 เป็น Drupal 10
เมื่อทุกอย่างพร้อม 100% ก็พร้อม run คำสั่ง composer โดยทั้งนี้ ต้องแก้ไข permission ของไฟล์ระบบเสียก่อน
chmod 777 sites/default chmod 666 sites/default/*settings.php chmod 666 sites/default/*services.yml
จากนั้น run คำสั่ง composer update หนึ่งครั้ง
composer update
หากเว็บไซต์นี้ เคยทำการอัปเกรดมาจาก Drupal 8 ให้ทำการ run คำสั่ง composer เพื่อแก้ไขเลขเวอร์ชั่นของตัว installers ให้เป็น ^1.9
ดูได้จากในไฟล์ composer.json ถ้ายังเป็น composer/installers:^1.2 ให้ทำการ run คำสั่ง composer นี้
composer require "composer/installers:^1.9"
เตรียมแพคเกจสำหรับ Drupal 10
composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --update-with-dependencies --no-update
run คำสั่ง composer update อีกครั้ง เพื่ออัปเกรดไฟล์ให้เป็น Drupal 10
composer update
หากทุกอย่างผ่านไปด้วยดี ให้ทำการ update ฐานข้อมูล อาจจะเปิดหน้า update.php หรือใช้คำสั่ง drush updatedb แล้วแต่ความถนัด
จากนั้นกลับไปแก้ไข permission ของไฟล์ระบบให้กลับเป็นเหมือนเดิม
chmod 755 sites/default chmod 644 sites/default/*settings.php chmod 644 sites/default/*services.yml
เพียงเท่านี้ ระบบไฟล์ทั้งหมดก็จะเปลี่ยนเป็น Drupal 10
ข้อมูลเพิ่มเติม: