Drupal 7 to Drupal 9.1 筆記
2021年開春又來挑戰一次升級,最近剛好也推出Drupal 9.1,真的是開春大吉,比我預期的還順利許多
首先就是先建置好drupal 9需要的環境
php7.4相關的apt抓一抓,composer drush環境也建置好就能開工了
開工:沒意外的話這個指令就會幫你把最新版的druapl以composer的方式創建出來
composer create-project drupal/recommended-project newsite
開資料庫
mysqladmin -u root create drupal9
調整目錄權限
chown -R www-data:www-data newsite/web/
升級至少要用到的模組
composer require drupal/migrate_upgrade
drush en migrate_upgrade
我在第一次升級完後,發現geofield的欄位沒跟過去,paragraphs 也沒有跟過去,後來我把網站資料庫砍掉,再重新安裝一次drupal,然後補齊後再跑drush轉換
模組可透過這些指令補齊及啟用 PS.如果composer已抓過的,砍sql重來不用重require,只需drush en即可
composer require drupal/modulesname
drush en modulesname
最重要的就是這個了,drush轉換升級
drush migrate-upgrade --legacy-db-url=mysql://root:pwd@localhost/oldsite --legacy-root=https://www.oldsite.com
原則上D7有的模組,D9有了就儘量滿足,看起來都能透過migrate-upgrade轉換過去
順便筆記一下,我有使用custom_formatters這個模組,當我執行 composer require drupal/custom_formatters,會出現版次錯誤,改成 composer require drupal/custom_formatters:3.0-beta1 就能順利下載
新站在轉換的時候有出現過濾器的錯誤訊息,導致我在新站沒辦法看到body的內容,顯然是格式的問題,進入 admin/config/content/formats 有跳一個錯誤訊息,然後存檔後body的內容就正常了,應該是html格式過濾器的關係吧
雖然模組有順利升過去,但是所有的內容呈現其實都必須重來,views、block、theme、context...等等,工程很大,而我暫時也沒心力去處理,就暫時這樣,先筆記欠著囉!
2/2 再戰
發現url別名消失了
URL 別名照舊站抄
admin/config/search/path
補上後再跑一次
drush migrate-upgrade --legacy-db-url=mysql://root:pwd@localhost/oldsite --legacy-root=https://www.oldsite.com
別名就會出現
留言