Nâng cấp lên Drupal 9.0 quá lằng nhằng nên tạm dừng ở Drupal 8 mới nhất

Submitted by superthin on 17/07/2020 - 07:39:42
Biểu tượng Drupal qua các phiên bản

Hôm trước Thin đã có ý định nâng cấp Drupal 8 lên Drupal 9 với lý do luôn được đề cao hàng đầu đó là sớm cập nhật lên phiên bản ổn định, ngăn ngừa các lỗ hổng bảo mật có thể phát sinh. Việc đó đã thất bại, nên Drupal hiện tại vận hành website này vẫn là Drupal 8.

Nâng cấp lên Drupal 8 mới nhất là công việc khá dễ nhưng gỡ rối hơi mệt

Mỗi lần có phiên bản Drupal mới phát hành thì bên tổ chức vận hành Drupal.org luôn gửi email để những người sử dụng biết cập nhật ngay lên phiên bản mới nhất. Trong trường hợp có liên quan vấn đề lỗ hổng bảo mật, ngay khi nhận được email, Thin sẽ chuyển website superthinlabs.com này sang chế độ bảo trì để tiến hành cập nhật.

Rất may mắn khi luôn cập nhật rất sớm những phiên bản mới phát hành nên website này chưa lần nào bị những kẻ ác ý mà không có trình độ cao về tấn công ứng dụng web đục thủng.

Việc nâng cấp lên khá đơn giản với Thin dù chẳng phải dân IT chính ngạch gì ráo:

  • Chuyển site sang chế độ bảo trì maintainment
  • Tải file tar chứa Drupal core về giải nén rồi rsync lên web hosting để đè lên phiên bản cũ
  • Gõ update.php lên thanh địa chỉ, click vài lần gì đó là xong

Nhưng đời không bao giờ như mơ cả, phiên bản gần đây Thin nâng cấp từ drupal 8.9.1 lên drupal 8.9.2 thì gặp thông báo cần phải xử lý.

Đây là những gì đã xảy ra trong thực tế khi nâng cấp

Ngay sau khi đã giải nén file tar và sync đè lên phiên bản cũ trên hosting (tất nhiên, Thin luôn tuân thủ những khuyến cáo dành cho SysAdmin để tránh gặp thảm hoạ) thì chạy update.php ngay trên trình duyệt, sẽ ra như sau:

Cập nhật cơ sở dữ liệu Drupal

Chỉ cần bấm nút Continue để qua bước sau mà thôi, quá đơn giản phải không nào?

Có lỗi về entity ở Drupal

Thấy có chữ màu vàng cam hiện lên màn hình là đã thấy sự "rách việc" xuất hiện. Việc này đòi hỏi phải đào sâu tìm hiểu, tức là có vấn đề cần phải xử lý chứ không phải có thể để yên đó mà thây kệ nó được.

Sau khi tra cứu một loạt qua các trang web trên cộng đồng sử dụng Drupal, Stack Exchange Network, Thin tự đánh giá: vấn đề trên không ảnh hưởng đến việc vận hành site hiện tại, nó vẫn tiềm ẩn nguy cơ tiếp tục hiện lên thông báo đó ở lần nâng cấp phiên bản sau hoặc gây ra lỗi nào đó khiến cho mọi việc trở nên tồi tệ hơn.

Người ta xử lý bằng lệnh Drush này nọ, lại phải cài Drush vào hosting thấy mệt mỏi quá, hosting yếu nên không còn muốn cài thêm thứ gì khác, thế là đành loay hoay tra cứu xem có thể "đục thẳng vào cơ sở dữ liệu" để làm gì đó không. Và sau đây chính là những gì Thin đã làm:

Lệnh gỡ bỏ entity mồ côi

Với câu lệnh SQL tại MySQL command line trên, Thin đã gỡ bỏ một cái Entity mồ côi ra khỏi cơ sở dữ liệu Drupal.

Xong! Như vậy là cái Entiy mồ côi kia đã bị loại bỏ ra khỏi cơ sở dữ liệu để lần nâng cấp Drupal sau thì Drupal sẽ không còn hiển thị thông báo như trên.

Bạn sẽ đặt câu hỏi liệu Thin có chắc đã giải quyết được vấn đề chưa hay là làm mò? Thin cũng không chắc lắm nhưng qua trực giác thì biết rằng vấn đề trên mình đã xử lý đúng, cái đó không thể lý giải bằng logic lập luận đơn thuần. Nếu bạn là người làm lâu năm, lên mức chuyên gia một thứ gì đó, bạn sẽ có những cái "nhạy cảm nghề" như vậy, biết chắc đã ổn, không cần lý luận lôi thôi gì.

Sử dụng thử xem có gì khác lạ không?

Khi nâng cấp xong, vào viết ngay bài này để xem tình hình có ảnh hưởng gì bởi việc nâng cấp hay không. Mới thoạt nhìn mọi thứ có vẻ ổn, nhưng khi chọn hình đại diện cho bài viết này, phát hiện ra việc upload một cái hình chưa đến  40KB mất hơn 1 phút, chưa hiểu nguyên nhân vì sao.

Post hình cover rất chậm

Hình đưa lên cứ xoay mòng mòng hơn cả phút. Còn các thứ khác có lẽ cũng chưa thật ổn cả đâu nhưng nó vẫn nằm trong tầm kiểm soát của Thin bởi vì việc nâng cấp Drupal đã được thực hiện rất nhiều lần. Có lần Thin còn nâng cấp cho khách hàng để lấy tiền, họ hài lòng vì việc nâng cấp theo họ là mượt mà, chất lượng ổn.

Hy vọng với bài viết chém gió này, những ai đang cần nâng cấp Drupal 8.x.x lên phiên bản Drupal 8.x.y có đủ dũng khí để làm, nó không khó như bạn nghĩ đâu, cùng lắm là... toang thôi mà./.