You are here

Drupal 8 升级 Drupal 9 小结

g089h515r806 的头像
Submitted by g089h515r806 on 星期一, 2023-03-06 14:09

升级步骤

备份数据库

1,升级到最新的D8版本, 8.9.20

2,升级模块,支持D9

  2.1升级第三方模块

  2.2 升级定制模块

3,升级到Drupal9


自定义模块检查,是否支持D9,主要是 info文件中,是否包含了:

core_version_requirement: ^8 || ^9

对于没有这一行的加上去


先将Drupal升级到8.9的最新版本,这个简单。


接着是升级模块,到支持Drupal9的版本,这个需要自己一个一个查找,这是实际站点,我逐个查找的:

admin_toolbar 8.x-1.27  : admin_toolbar-3.2.1 


blocktabs 8.x-1.0-beta3 :blocktabs-8.x-1.0-beta4 


依赖于:https://www.drupal.org/project/jquery_ui_accordion


Bootstrap Datepicker 8.x-1.0 不用升级


Charts 8.x-3.2+6-dev:charts-8.x-3.4


Ckeditor drupalbreaks 8.x-1.x-dev: 卸载


ckeditor_font8.x-1.0 : ckeditor_font-8.x-1.3

ckeditor_templates 8.x-1.1:卸载


colorbutton 8.x-1.1+1-dev:colorbutton 8.x-1.3


content_entity_builder 8.x-1.0-beta11 : 不用升级

csv_serialization 8.x-1.4:csv_serialization-8.x-2.1

entity 8.x-1.0:entity-8.x-1.3

entity_print 8.x-2.4:entity_print-8.x-2.7

entity_reference_revisions 8.x-1.8:entity_reference_revisions-8.x-1.9



entity_update 2.0.0-rc2 :不用升级 

fakeobjects 8.x-1.0:fakeobjects-8.x-1.2

feeds 8.x-3.0-alpha10:feeds-8.x-3.0-beta2 

field_permissions 8.x-1.1:field_permissions-8.x-1.2

field_validation 8.x-1.0-beta3:不用升级

flag 8.x-4.0-beta3:不用升级

flood_control 2.2.2:flood_control-2.3.0

inline_entity_form 8.x-1.0-rc7:inline_entity_form-8.x-1.0-rc14

jquery_ui 8.x-1.4:不用升级

jquery_ui_datepicker 8.x-1.1:jquery_ui_datepicker-8.x-1.4

layout_builder_restrictions 8.x-2.2:layout_builder_restrictions-8.x-2.16

layout_library 8.x-1.0-beta1:layout_library-8.x-1.0-beta3

link_attributes 8.x-1.11:不用升级

ludwig 8.x-1.8:ludwig-8.x-1.12

masquerade 8.x-2.0-beta4:masquerade-8.x-2.0-rc1

month_year 2.0.1:不用升级

nice_login 2.0.0:不用升级

panelbutton 8.x-1.2:panelbutton-8.x-1.5 


paragraphs 8.x-1.11:paragraphs 8.x-1.13

paragraphs_table 8.x-1.3:paragraphs_table-8.x-1.20

pdf 8.x-1.x-dev:pdf-8.x-1.1

profile 8.x-1.1:卸载

r4032login 8.x-1.1:r4032login-2.1.0

select2 8.x-1.13:不用升级

shs 8.x-1.0-alpha4:shs-2.0.0-rc3

super_login 8.x-1.6:super_login-2.1.0

taxonomy_manager 2.0.4:卸载

transliterate_filenames 8.x-1.5:transliterate_filenames-8.x-1.10

twig_tweak 8.x-2.4:twig_tweak-8.x-2.10

verf 8.x-1.0:不用升级

views_bulk_operations 8.x-2.6:views_bulk_operations-4.1.6

views_data_export 8.x-1.0:views_data_export-8.x-1.1

views_field_view 8.x-1.0-beta3:views_field_view-8.x-1.0-beta4

workflow_buttons 8.x-1.0-beta4:不用升级

yearonly 8.x-1.3:yearonly-9.1.0


主题也要升级

bootstrap 8.x-3.20:bootstrap-8.x-3.24


自定义主题info文件添加:

core_version_requirement: ^8.8 || ^9


此时主题的info文件,需要去掉core标签


升级后,也是正常的,

但是升级到Drupal9时,个别模块需要降级才能正常工作。


另外,开始我直接从 Drupal8.9.20 升级到Drupal9.5,问题很多。

后来我改为了,先升级到Drupal9.2,问题少了很多。

另外,就是yml文件,主题的,在Drupal8下面,可以工作,到了Drupal9,严格了。需要严格按照yml规范编写。不然报错。比如:


Warning:Invalid argument supplied for foreach() 在函数 Drupal\Core\Asset\AssetResolver->getJsAssets()(文件 /home/www/website/jobs/core/lib/Drupal/Core/Asset/AssetResolver.php 第 254 行)

#0 /home/www/website/jobs/core/includes/bootstrap.inc(312): _drupal_error_handler_real()


对于一个实际站点,升级Drupal8到Drupal9,差不多花了我一天的时间,整体还算顺利。Drupal主版本的升级,从来不是容易的事情。

自定义模块里面的代码,一些也要修改。


论坛:

Drupal版本: