Drupal 8.5.1升级错误 - 在哪里寻找疑难解答?

时间:2018-04-25 05:30:52

标签: php mysql drupal drupal-8 drush

我正在将网站从8.3.5升级到8.5.1

我更新了代码库,我通过编辑器配置了模块,并使用cgr升级了我的drush安装,并在安装中运行了drush 9。我在本地环境中的dev数据库上运行这个站点

我正在努力将数据库从生产服务器移植到开发环境中。将Acquia DevDesktop 2用于本地开发环境。 我可以运行drush状态,一切似乎都很好:

  

数据库主机名:127.0.0.1
  DB端口:33067
  DB用户名:drupaluser
  数据库名称:site_migration_851
  数据库:已连接
  Drupal bootstrap:成功的
  默认主题:site_theme
  管理主题:七   PHP二进制文件:/ Applications / DevDesktop / php5_6 / bin / php
  PHP配置:/Applications/DevDesktop/php5_6/bin/php.ini
  PHP操作系统:达尔文
  Drush脚本:/ Volumes / Video_Drive / web / DrupalProjects / site-mig                       定量-851 /供应商/ drush / drush / drush Drush版本:9.2.3
  扼流温度:/ tmp
  Drush configs:/ Volumes / Video_Drive / web / DrupalProjects / site-mig                       ration-851 / vendor / drush / drush / drush.yml安装档案:标准
  Drupal root:/ Volumes / Video_Drive / web / DrupalProjects / site-mig                       ration-851站点路径:sites / default
  文件,公共:网站/默认/文件
  文件,温度:/ tmp

我无法在浏览器中加载网站,我收到以下错误:

  

该网站遇到意外错误。请再试一次   later.Symfony \分量\ HttpKernel \异常\ NotFoundHttpException:   找不到" GET /"在Symfony \ Component \ HttpKernel \ EventListener \ RouterListener-> onKernelRequest()中   (vendor / symfony / http-kernel / EventListener / RouterListener.php的第144行)。

     的Drupal \核心\路由\ AccessAwareRouter-> matchRequest(对象)   (行:114)   的Symfony \组件\ HttpKernel \事件监听\ RouterListener-> onKernelRequest(对象,   ' kernel.request',Object)call_user_func(Array,Object,   ' kernel.request',Object)(行:111)   的Drupal \组件\此事件\ ContainerAwareEventDispatcher->调度(' kernel.request&#39 ;,   对象)(行: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 \核心\ StackMiddleware \ ReverseProxyMiddleware->手柄(对象,   1,1)(线路:50)   的Drupal \核心\ StackMiddleware \ NegotiationMiddleware->手柄(对象,   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/includes/common.inc,line 1123中调用未定义的函数system_rebuild_module_data()

我尝试使用令牌运行/core/rebuild.php,该令牌生成正常,但它出错并使用与上面相同的消息。

我手动截断了"缓存_"在阅读了其他人在这里以及drupal社区网站上所经历的内容后,数据库中的表格。

我还检查了配置管理器设置,并且uuid与旧的dev数据库相同。我重置它,尝试对prod db运行同步更改并且没有任何改变。

仍然无法使用prod DB加载网站。目标是使代码库与生产数据库一起运行,因为它具有正确的内容等。

生产数据库中是否存在干扰核心旋转正确路线的内容?

更新:

我重新运行了作曲家更新和作曲家安装 能够成功进入/core/install.php页面。 它告诉我drupal已安装。 第一种选择是不可取的,因为我需要保留内容数据。

当我转到/update.php网址

  

该网站遇到意外错误。请稍后再试。   Symfony的\分量\ DependencyInjection \异常\ ServiceNotFoundException的:   您已请求不存在的服务" access_check.db_update"。在   的Symfony \组件\ DependencyInjection \ ContainerBuilder-> getDefinition方法()   (第1024行)   供应商/ symfony的/依赖性注入/ ContainerBuilder.php)。   的Symfony \组件\ DependencyInjection \ ContainerBuilder-> getDefinition方法(' access_check.db_update')   (行:591)   的Symfony \组件\ DependencyInjection \ ContainerBuilder->的doGet(' access_check.db_update&#39 ;,   1)(行:569)   的Symfony \组件\ DependencyInjection \ ContainerBuilder->获得(' 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)

当我转到网站的首页时,它会返回:

  

该网站遇到意外错误。请再试一次   later.Drupal \分量\插件\异常\ PluginNotFoundException:   "节点"实体类型不存在。在Drupal \ Core \ Entity \ EntityTypeManager-> getDefinition()中   (core / lib / Drupal / Core / Entity / EntityTypeManager.php的第133行)。

     Drupal \ Core \ Entity \ EntityTypeManager-> getHandler(' node',' storage')(行:169)   的Drupal \核心\实体\ EntityTypeManager-> getStorage('节点')   (行:79)   的Drupal \核心\实体\ EntityManager-> getStorage('节点')   (行:100)   的Drupal \核心\ ParamConverter \ EntityConverter->转换(' 43&#39 ;,   数组,'节点',数组)(行:100)   的Drupal \核心\ ParamConverter \ ParamConverterManager->转换(阵列)   (行:45)   的Drupal \核心\路由\强化剂\ ParamConversionEnhancer->增强(阵列,   对象)(行:259)   Drupal \ Core \ Routing \ Router-> applyRouteEnhancers(Array,Object)   (行:130)Drupal \ Core \ Routing \ Router-> matchRequest(Object)(行:   90)Drupal \ Core \ Routing \ AccessAwareRouter-> matchRequest(Object)   (行:114)   的Symfony \组件\ HttpKernel \事件监听\ RouterListener-> onKernelRequest(对象,   ' kernel.request',Object)call_user_func(Array,Object,   ' kernel.request',Object)(行:111)   的Drupal \组件\此事件\ ContainerAwareEventDispatcher->调度(' kernel.request&#39 ;,   对象)(行: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 \核心\ StackMiddleware \ ReverseProxyMiddleware->手柄(对象,   1,1)(线路:50)   的Drupal \核心\ StackMiddleware \ NegotiationMiddleware->手柄(对象,   1,1)(行:23)Stack \ StackedHttpKernel-> handle(Object,1,1)   (行:664)Drupal \ Core \ DrupalKernel-> handle(Object)(行:19)   

运行drush dbup& entup返回以下错误:

  

致命错误:调用未定义的函数system_rebuild_module_data()   在第46行的/web/DrupalProjects/site/site/core/includes/update.inc

另外drush entup产生以下状态,然后错误

  

[success]无需实体架构更新   致命错误:调用未定义的函数system_rebuild_module_data()   在   /web/DrupalProjects/site/site/core/includes/common.inc   在1123线   [成功]完成了更新。

很奇怪。

7 个答案:

答案 0 :(得分:0)

运行这些命令以获得对Upgraded Drupal的依赖。

composer update
composer install

答案 1 :(得分:0)

请按照以下步骤操作

  • <datalist id="categories"> <option *ngFor="let one of categoryList" value="{{one.categoryName}}"> </option> </datalist>
  • composer update
  • drush updb

答案 2 :(得分:0)

很抱歉,我挖了一个5个月的问题,将Drupal 8.5网站更新到8.6时遇到了同样的错误。我不会丢失数据库中的任何数据,因此使用新数据库对我来说是行不通的;在运行/update.php的过程中,出现了上述错误。我最终通过删除整个/vendor目录并重新运行来使我的工作正常:

  • composer install
  • composer update
  • drush cr

答案 3 :(得分:0)

从根目录删除供应商目录之后。请仅运行composer update命令。 它将做什么,它将仅安装基于新Drupal版本的所有依赖项。

如果要升级整个过程,请告诉我。

谢谢!

答案 4 :(得分:0)

请遵循以下过程。您需要在腻子中使用它。

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

答案 5 :(得分:0)

按照以下步骤将Drupal从8.3.5升级到8.5.1

  1. 更改composer.json文件中的行,即“ drupal / core”:“ ^ 8.5.1”。
  2. 运行composer更新(它将下载基于Drupal 8.5.1的所有依赖项)

然后两种方式运行Drupal Update 1.通过URL domain / update.php或 2.刷新更新b

注意:如果在根位置建立了composer.lock,则将其删除。

答案 6 :(得分:0)

除非默认设置正确,否则不能直接使用CREATE DATABASE

尝试再次使用CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci创建它,然后运行导入。