Αυτή η σελίδα παρέχει οδηγίες σχετικά με τον τρόπο αναβάθμισης από Drupal 8 σε Drupal 9. Για αναβάθμιση από προηγούμενες εκδόσεις του Drupal (όπως το Drupal 6 και 7), ανατρέξτε στην ενότητα Αναβάθμιση από Drupal 6 ή 7 σε Drupal 8 .
Υπάρχουν ξεχωριστές οδηγίες για ενημερώσεις ιστότοπου δευτερεύουσας σημασίας και έκδοσης ενημέρωσης κώδικα . (Για παράδειγμα, ενημέρωση από το Drupal 9.3.6 σε 9.3.8 ή 9.2.14 σε 9.3.8.)
Προαπαιτούμενα
- Ο ιστότοπός σας πρέπει να ενημερωθεί στην πιο πρόσφατη δευτερεύουσα έκδοση. Οι αναβαθμίσεις υποστηρίζονται μόνο από την τελική προγραμματισμένη δευτερεύουσα έκδοση και μία προηγούμενη (π.χ. Drupal 8.8 και 8.9), όχι από προηγούμενες εκδόσεις (π.χ. Drupal 8.3). Ακολουθήστε τις οδηγίες ενημέρωσης .
- Θα πρέπει να αναβαθμίσετε τυχόν παλιές λειτουργικές μονάδες στον ιστότοπό σας στις πιο πρόσφατες εκδόσεις τους. Οι παλαιότερες εκδόσεις λειτουργικών μονάδων ενδέχεται να μην είναι συμβατές με το Drupal 9.
- Το περιβάλλον φιλοξενίας σας πρέπει να πληροί τις ελάχιστες απαιτήσεις συστήματος για την έκδοση Drupal στην οποία αναβαθμίζετε (π.χ. PHP 7.4 ή μεταγενέστερη).
- Ελέγξτε εάν έχετε καταργήσει κώδικα στον ιστότοπό σας που καταργήθηκε στην επόμενη κύρια έκδοση. Διορθώστε τυχόν καταργήσεις, εάν απαιτείται. Η ενότητα Upgrade Status μπορεί να σας βοηθήσει σε αυτό. Ίσως χρειαστεί να αναβαθμίσετε πολλές ενότητες .
Η πραγματική διαδικασία αναβάθμισης θα εξαρτηθεί από το αν ο τρέχων ιστότοπός σας δημιουργήθηκε με χρήση Composer ή tarballs (αρχεία tar.gz).
Εάν ακολουθείτε τη διαδρομή του Composer, αυτές οι οδηγίες είναι για ιστότοπους που βασίζονται σε ή , ή παράγωγα, και όχι ιστότοπους που βασίζονται σε drupal-composer/drupal-project . Ανατρέξτε στην ενότητα Ενημέρωση Drupal από εκδόσεις πριν από το 8.8.x χρησιμοποιώντας το Composer για οδηγίες σχετικά με τη μετατροπή στο νεότερο συμβατό μοντέλο 8.8+.drupal/recommended-projectdrupal/legacy-project
Αναβάθμιση τοποθεσίας Drupal 8 που βασίζεται σε Composer
Εκτελέστε τα παρακάτω βήματα από τη ρίζα του ιστότοπού σας Drupal 8 (όπου ζει).composer.json
Προσθέστε προσωρινά πρόσβαση εγγραφής σε προστατευμένα αρχεία και καταλόγους:
chmod 777 web/sites/default chmod 666 web/sites/default/*settings.php chmod 666 web/sites/default/*services.ymlΣτη συνέχεια, θα χρειαστεί να τραβήξετε τόσο την έκδοση Drupal 9 όσο και τα πακέτα ως εξαρτήσεις. Χρησιμοποιούμε για να αποφύγουμε ένα πρόβλημα κότας και αυγού με αμοιβαίες εξαρτήσεις:
core-recommendeddev-dependencies--no-update
composer require 'drupal/core-recommended:^9' 'drupal/core-composer-scaffold:^9' 'drupal/core-project-message:^9' --update-with-dependencies --no-updateΕάν έχετε εγκαταστήσει:
drupal/core-devcomposer require 'drupal/core-dev:^9' --dev --update-with-dependencies --no-updateΤώρα, εκτελέστε πραγματικά την ενημέρωση στον ίδιο τον κώδικα:
composer updateΣημείωση: Εάν κάποιο από τα πακέτα σας δεν έχει μια έκδοση που έχει δηλωθεί ρητά ως συμβατή με D9, πιθανότατα θα αντιμετωπίσετε σφάλμα εξάρτησης κατά την προσπάθεια ενημέρωσης της βάσης κωδικών σας. Ενδέχεται να υπάρχει ήδη μια ενημερωμένη έκδοση κώδικα στην ουρά ζητημάτων που μπορείτε να χρησιμοποιήσετε εάν χρησιμοποιήσετε για να "αναβαθμίσετε" το έργο ώστε να είναι συμβατό με το drupal 9. Ανατρέξτε σε αυτήν την τεκμηρίωση για περισσότερες λεπτομέρειες σχετικά με τον τρόπο χειρισμού αυτής της κατάστασης: https://www.drupal.org/docs/develop/using-composer/using-drupals-lenient...
Ένας άλλος, λιγότερο προτεινόμενος τρόπος για να το παρακάμψετε, είναι να προσθέσετε ένα ψευδώνυμο στο , όπως:
drupal/corecomposer require "drupal/core:9.0.0 as 8.9.0" --no-update && composer update(Βεβαιωθείτε ότι έχετε αντικαταστήσει τις εκδόσεις 9.0.0 και 8.9.0 σε όποιες εκδόσεις χρησιμοποιείτε στην εγκατάστασή σας.). Αυτό μπορεί να οδηγήσει σε προβλήματα με μονάδες που είναι *ρητά* d9 μόνο, καθώς δεν θα λειτουργήσουν σε αυτό το σενάριο, αλλά μπορεί να σας οδηγήσει στο σημείο που πρέπει να βρίσκεστε.
Εκτελέστε τυχόν εκκρεμείς ενημερώσεις βάσης δεδομένων, που απαιτούνται εάν ενημερώσετε τον κώδικα της μονάδας και αυτή η ενότητα πρέπει να ενημερώσει τη βάση δεδομένων, είτε μεταβαίνοντας στο update.php στο πρόγραμμα περιήγησης είτε με το Drush:
drush updatedbΌταν ολοκληρωθεί, επαναφέρετε την πρόσβαση μόνο για ανάγνωση στον ιστότοπο/προεπιλεγμένο κατάλογο:
chmod 755 web/sites/default chmod 644 web/sites/default/*settings.php chmod 644 web/sites/default/*services.ymlΕάν εκτελέσατε να συμπεριλάβετε τον πυρήνα 9.0 ως 8.9, φροντίστε να αλλάξετε την καταχώριση μετά από μια επιτυχημένη αναβάθμιση στο αρχείο σας. Διαφορετικά, δεν θα μπορείτε να εγκαταστήσετε ενημερώσεις του Drupal.
composer.json"drupal/core": "^9.0.0",
Πράγματα που πρέπει να ελέγξετε όταν η ενημέρωση αποτυγχάνει
Αναβαθμίζοντας τον ιστότοπό σας, ίσως θέλετε να ελέγξετε το composer.json για αυτές τις γραμμές:
"drupal/core":"^8.8.0", -> delete this line
"laminas/laminas-diactoros":"1.8" -> change to "^2"
"drupal/core-dev": "^8.8.0" -> change to "^9"Αναβάθμιση ενός ιστότοπου Drupal 8 που βασίζεται στο Tarball
Η αναβάθμιση ενός ιστότοπου που βασίζεται σε tarball από το Drupal 8 στο Drupal 9 με το Drush απαιτεί μια παλαιότερη έκδοση του Drush: Drush 8. Ανατρέξτε στην ενότητα Ενημέρωση πυρήνα μέσω Drush για οδηγίες σχετικά με το πώς να το κάνετε αυτό.
Από το Drupal 9.4, οι ιστότοποι που έχουν δημιουργηθεί με αρχεία αρχείων tarball ή zip δεν θα λαμβάνουν πλέον το ίδιο επίπεδο υποστήριξης ασφαλείας για βασικές εξαρτήσεις. Οι ιστότοποι που έχουν δημιουργηθεί με αρχεία tarball ή zip θα πρέπει να μετατραπούν σε χρήσηdrupal/core-recommended για την εφαρμογή ενημερώσεων ασφαλείας πιο γρήγορα από το παραπάνω χρονικό πλαίσιο.
Πηγή: https://www.drupal.org/docs/upgrading-drupal/drupal-8-and-higher
Σχόλια