ขั้นตอน เตรียมตัว และ การอัปเกรด Drupal 9 เป็น Drupal 10

แม้ว่าการอัปเกรดจาก 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

ข้อมูลเพิ่มเติม: