升级的 Drush 8 到 9 站点别名不起作用

r00*_*00t 0 drupal drush acquia lando

我从使用 Docksal 转移到 Acquia ADS (Lando),它自动将我的 Drush 从 8 升级到 9。我的本地站点运行良好,但我无法让 Drush 9“查看”我的 Drupal 8 站点。别名似乎已创建并添加到 drush/sites 文件夹中,并且运行 drush site:alias 确实会显示它们。但是,运行 drush status 将我的 Drupal 根显示为 /app。我的 Drupal 根目录是 /app/docroot。我的别名文件确实将此作为其根目录(对于本地)。我不确定为什么 Drush 不使用它知道的别名文件。我试过了:

冲@self(或@local)列表,我得到一些命令和最后的声明:

[注意] 未找到 Drupal 根。传递 --root 或 @siteAlias 以查看特定于 Drupal 的命令。

做 drush @local(or @self) cr 返回:

在 BootstrapHook.php 第 32 行:Bootstrap 失败。使用 -vvv 运行您的命令以获取更多信息。

使用 -vvv:

异常跟踪:在 /app/vendor/drush/drush/src/Boot/BootstrapHook.php:32 Drush\Boot\BootstrapHook->initialize() 在 /app/vendor/consolidation/annotated-command/src/Hooks/Dispatchers/ InitializeHookDispatcher.php:34 Consolidation\AnnotatedCommand\Hooks\Dispatchers\InitializeHookDispatcher->callInitializeHook() 在 /app/vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php:27 Commandsolidation\Annotated\Annotated InitializeHookDispatcher->initialize() at /app/vendor/consolidation/annotated-command/src/CommandProcessor.php:145 Consolidation\AnnotatedCommand\CommandProcessor->initializeHook() at /app/vendor/consolidation/annotated-command/src/AnnotatedCommand .php:289 Consolidation\AnnotatedCommand\AnnotatedCommand->initialize() 在 /app/vendor/symfony/console/Command/Command.php:第 221 部分console/Application.php:255 Symfony\Component\Console\Application->doRun() at /app/vendor/symfony/console/Application.php:148 Symfony\Component\Console\Application->run() at /app/ vendor/drush/drush/src/Runtime/Runtime.php:118 Drush\Runtime\Runtime->doRun() at /app/vendor/drush/drush/src/Runtime/Runtime.php:49 Drush\Runtime\Runtime- >run() at /app/vendor/drush/drush/drush.php:72 require() at /app/vendor/drush/drush/drush:4第 255 话src/Runtime/Runtime.php:118 Drush\Runtime\Runtime->doRun() at /app/vendor/drush/drush/src/Runtime/Runtime.php:49 Drush\Runtime\Runtime->run() at / app/vendor/drush/drush/drush.php:72 require() at /app/vendor/drush/drush/drush:4第 255 话src/Runtime/Runtime.php:118 Drush\Runtime\Runtime->doRun() at /app/vendor/drush/drush/src/Runtime/Runtime.php:49 Drush\Runtime\Runtime->run() at / app/vendor/drush/drush/drush.php:72 require() at /app/vendor/drush/drush/drush:4

刷状态:

PHP binary    : /usr/local/bin/php
PHP config    :
PHP OS        : Linux
Drush script  : /app/vendor/drush/drush/drush
Drush version : 10.2.2 <-- Had 9.0.0 but currently trying 10, same issue
Drush temp    : /tmp
Drush configs : /root/.drush/drush.yml
                /app/vendor/drush/drush/drush.yml
                /app/drush/drush.yml
Drupal root   : /app
Run Code Online (Sandbox Code Playgroud)

self.site.yml:

local:
  root: /app/docroot
  uri: example.lndo.site
Run Code Online (Sandbox Code Playgroud)

有人可以指出我正确的方向吗?

r00*_*00t 5

弄清楚了。无论您尝试通过多少种方式告诉 Drush 在哪里查找您的 Drupal 根目录,在您编辑 composer.json 文件之前,这些都无关紧要。事实证明,使 Drush 9+ 工作的关键是更改 Composer 中的名称。我的 composer.json 文件名从:“name”:“drupal/drupal”,到:“name”:“drupal-composer/drupal-project”,

我认为此功能没有记录在任何地方,因此我将其发布在这里以回答我自己的问题,以防它对其他人有所帮助。