我正在将网站从 8.3.5 升级到 8.5.1
我已经更新了代码库,我通过作曲家配置了模块,并使用 cgr 升级了我的 drush 安装,并在安装中运行 drush 9。我让这个网站在我的本地环境中的开发数据库上运行得很好
我正在将数据库中的数据库从生产服务器移植到开发环境中。将 Acquia DevDesktop 2 用于本地开发环境。 我可以运行 drush 状态,一切似乎都很好:
DB主机名 : 127.0.0.1 DB
端口 : 33067
DB 用户名 : drupaluser 数据库名称 :
site_migration_851 数据库 : 连接的 Drupal 引导程序 : 成功 默认主题 : site_theme 管理员主题 : 七个 PHP 二进制 :/Applications/DevDesktop/php5_6/bin/php PHP config :/
Applications/
DevDesktop/php5_6/bin/php.ini
PHP 操作系统 : 达尔文
Drush 脚本:/Volumes/Video_Drive/web/DrupalProjects/site-mig 口粮-851/供应商/德鲁什/德鲁什/德鲁什 德鲁什版本:9.2.3
德鲁什温度:/tmp
德鲁什配置:/卷/Video_Drive/web/DrupalProjects/site-mig ration-851/vendor/drush/drush/drush.yml 安装配置文件:标准 Drupal
根目录 :/Volumes/Video_Drive/web/DrupalProjects/site-mig 口粮-851 站点路径 : 站点/默认文件, 公共 : 站点/默认
/文件 文件
, 临时 :/tmp
我无法在浏览器中加载网站,出现以下错误:
网站遇到意外错误。请重试 后。Symfony\Component\HttpKernel\Exception\NotFoundHttpException: 在 Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest() 中找不到 "GET/" 的路由 (vendor/symfony/http-kernel/EventListener/RouterListener.php的第 144 行)。
Drupal\Core\Routing\AccessAwareRouter->matchRequest(Object) (行:114) Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(Object, 'kernel.request', Object) call_user_func(Array, Object, 'kernel.request', 对象) (行: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.request', 对象)(行:127) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (行:68)Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (行: 57) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (行: 47) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (行: 47) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (行: 50) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (行: 23) stack\StackedHttpKernel->handle(Object, 1, 1) (行:664)Drupal\Core\DrupalKernel->handle(Object) (行: 19)
当我运行 drush cr 时,出现以下错误: [错误] 由于不可恢复的错误,Drush 命令异常终止。 错误:调用/Volumes/web/DrupalProjects/site-migration-851/core/include/common.inc 中未定义的函数 system_rebuild_module_data(),第 1123 行
我尝试使用令牌运行/core/rebuild.php,结果很好,但它出错并显示与上面相同的消息。
在阅读了其他人在这里和 drupal 社区站点上的经历之后,我手动截断了数据库中的"cache_"表。
我还检查了配置管理器设置,uuid 与旧的开发数据库相同。我重置了它,尝试对 prod db 运行同步更改,但没有任何变化。
仍然无法使用生产数据库加载站点。目标是使代码库与生产数据库一起运行,因为它具有正确的内容等。
生产数据库中是否有某些东西干扰了核心旋转正确的路由?
更新:
我重新运行了作曲家更新和作曲家安装 能够成功进入/core/install.php 页面。 它告诉我安装了drupal。 重新开始的第一个选项是不可取的,因为我需要保留内容数据。
当我转到/update.php 网址时
网站遇到意外错误。请稍后重试。 Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: 您请求了不存在的服务"access_check.db_update"。在 Symfony\Component\DependencyInjection\ContainerBuilder->getDefinition() (第 1024 行 vendor/symfony/dependency-injection/ContainerBuilder.php)。 Symfony\Component\DependencyInjection\ContainerBuilder->getDefinition('access_check.db_update') (行:591)Symfony\Component\DependencyInjection\ContainerBuilder->doGet('access_check.db_update', 1) (行: 569) Symfony\Component\DependencyInjection\ContainerBuilder->get('access_check.db_update') (行:182)Drupal\Core\Update\UpdateKernel->handleAccess(Object, 对象) (行: 99) Drupal\Core\Update\UpdateKernel->handleRaw(Object) (行:73)Drupal\Core\Update\UpdateKernel->handle(Object) (行: 28)
当我转到网站的首页时,它返回:
网站遇到意外错误。请重试 后。Drupal\Component\Plugin\Exception\PluginNotFoundException: "节点"实体类型不存在。in Drupal\Core\Entity\EntityTypeManager->getDefinition() (core/lib/Drupal/Core/Entity/EntityTypeManager.php的第133行)。
Drupal\Core\Entity\EntityTypeManager->getHandler('node', 'storage') (行: 169) Drupal\Core\Entity\EntityTypeManager->getStorage('node') (行:79) Drupal\Core\Entity\EntityManager->getStorage('node') (行:100) Drupal\Core\ParamConverter\EntityConverter->convert('43', 数组, "节点", 阵列) (行: 100) Drupal\Core\ParamConverter\ParamConverterManager->convert(Array) (行:45) Drupal\Core\Routing\Enhancer\ParamConversionEnhancer->enhance(Array, 对象)(行:259) Drupal\Core\Routing\Router->applyRouteEnhancers(Array, Object) (行:130)Drupal\Core\Routing\Router->matchRequest(Object) (Line: 90) Drupal\Core\Routing\AccessAwareRouter->matchRequest(Object) (行:114) Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(Object, 'kernel.request', Object) call_user_func(Array, Object, 'kernel.request', 对象) (行: 111) Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.request', 对象)(行:127) Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (行:68)Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (行: 57) Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (行: 47) Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (行: 47) Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (行: 50) Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (行: 23) stack\StackedHttpKernel->handle(Object, 1, 1) (行:664)Drupal\Core\DrupalKernel->handle(Object) (行: 19)
运行 drush dbup & entup 返回以下错误:
致命错误:调用未定义的函数 system_rebuild_module_data() 在/web/DrupalProjects/site/site/core/include/update.inc 第 46 行
此外,drush entup 产生以下状态,然后错误
[成功] 无需实体架构更新 致命错误:调用未定义的函数 system_rebuild_module_data() 在/web/DrupalProjects/site/site/core/include/common.inc 在 1123 行 [成功]已完成执行更新。
很奇怪。
运行这些命令以获取对升级的 Drupal 的依赖。
composer update
composer install
按照以下步骤操作
composer update
drush updb
drush entup
很抱歉挖掘了一个 5 个月前的问题,当我将 Drupal 8.5 站点更新到 8.6 时,我遇到了同样的错误。我不会丢失数据库中的任何数据,因此使用新数据库对我不起作用;我在运行/update.php
的中途遇到了上述错误。我最终通过删除整个/vendor
目录并重新运行来让我的工作:
composer install
composer update
drush cr
从根目录中删除供应商目录后。请仅运行作曲家更新命令。 它将做什么,它将只安装基于新Drupal版本的所有依赖项。
如果您想升级整个过程,请告诉我。
谢谢!
按照以下步骤将Drupal 从 8.3.5 升级到 8.5.1
- 更改 composer.json 文件中的行,即"drupal/core":"^8.5.1"。
- 运行作曲家更新(它将下载所有基于 Drupal 8.5.1 的依赖项)
然后运行Drupal Update的两种方法 1. 通过 URL 域/更新.php或 2. 德鲁什更新b
注意:删除作曲家.锁,如果建立于根位置。
请按照以程操作。 您需要在腻子中使用它。
1)在主drupal站点文件夹之外的某个地方安装新的Drupal。
wget https://ftp.drupal.org/files/projects/drupal-8.5.1.tar.gz
2) 解压缩此文件
tar -xvf drupal-8.5.1.tar.gz
3)转到新安装的Drupal根目录并删除模块,主题,站点文件夹。例如。
rm -rf modules
rm -rf sites
rm -rf themes
4)现在回到根目录并点击下面的代码。
yes|cp -R drupal-8.5.1/* your_original_drupal_folder_name/
5)之后,只需转到您的drupal根目录并运行composer update
命令即可。
6)最后运行drush updb
。
除非默认值正确,否则不能直接使用CREATE DATABASE
。
尝试使用CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci
再次创建它,然后运行导入。