在Drupal 8中,Drush 9别名文件应该放在哪里?

7
我尝试了几种方法来为我的本地Drupal项目创建别名,我参考了以下链接:https://www.drupal.org/node/1401522, https://www.drupal.org/project/drush/issues/831272, https://www.drupal.org/project/drush/issues/786766。我可以通过运行此命令连接:
drush --root=C:/wamp64/www/executive-coatings --uri=http://localhost:81/executive-coatings status

输出:

 Drupal version   : 8.6.13
 Site URI         : http://localhost:81/executive-coatings
 DB driver        : mysql
 DB hostname      : localhost
 DB port          : 3306
 DB username      : root
 DB name          : dev_ecc_new
 Database         : Connected
 Drupal bootstrap : Successful
 Default theme    : ecc_front
 Admin theme      : adminimal_theme
 PHP binary       : C:\wamp64\bin\php\php7.2.10\php.exe
 PHP config       : C:\wamp64\bin\php\php7.2.10\php.ini
 PHP OS           : WINNT
 Drush script     : C:\wamp64\www\executive-coatings\vendor\bin\drush.phar
 Drush version    : 9.6.2
 Drush temp       : C:\Users\k\AppData\Local\Temp
 Drush configs    : C:/Users/k/.drush/drush.yml
                    C:/wamp64/www/executive-coatings/vendor/drush/drush/drush.yml
 Install profile  : minimal
 Drupal root      : C:\wamp64\www\executive-coatings
 Site path        : sites/default
 Files, Public    : sites/default/files
 Files, Temp      : /tmp

然而,当我尝试使用drush别名时,它无法正常工作。以下是我的别名文件:

$aliases['local'] = array(
      'uri' => 'localhost:81/executive-coatings',
      'root' => 'C:/wamp64/www/executive-coatings',
  'path-aliases' => array(
    '%dump-dir' => '/tmp',
  ),
);

运行 drush @local status 返回 [preflight] 找不到别名@local。

我认为我将别名文件放在了错误的目录中,请问您能提供正确的路径吗?

1个回答

10
别名文件位置并不是你在这里遇到的唯一问题,因为你正在运行 Drush 9.x。以下是 Drush 8.x 和 Drush 9.x 在别名方面的主要变化:
网站别名不再是PHP文件,而是YAML文件。幸运的是,Drush 9.x带有一个命令来转换您的旧的drush 8别名:
drush site:alias-convert
在Drush 8中使用的用户别名位置(~/.drush/sites,/etc/drush/sites)默认情况下不再解析,但您可以在您的~/.drush/drush.yml配置文件中注册任何可能放置别名文件的位置。通过运行以下命令可以自动设置旧的Drush 8路径:
drush core:init
它将以下内容写入~/.drush/drush.yml文件中:
    drush:
      paths:
        alias-path:
          - '${env.home}/.drush/sites'
          - /etc/drush/sites

例如在您的情况下,为网站executive-coatings定义一个本地环境并将其别名设为ecc可以在文件中完成(前提是该位置已根据上述说明进行了注册)~/.drush/sites/ecc.site.yml

您还可以为给定的网站定义环境别名(例如@dev,@preprod等),位置如下(在该网站的项目根目录下,使用self作为文件命名):
<DRUPAL_ROOT>/drush/sites/self.site.yml

有用的链接:

1
谢谢,没错。我尝试使用 .yml 文件,它可以正常工作。 - Nasser Ali Karimi
正如您在我的问题中看到的,它显示“Drupal版本:8.6.13”,但您提到我的Drupal版本是9,您有任何想法吗? - Nasser Ali Karimi
1
我提到了你的Drush版本:Drush版本:9.6.2。然而这有些令人困惑,因为Drush和Drupal的版本不相关,请参见https://docs.drush.org/en/master/install/#drupal-compatibility。 - EricLavault
你能也检查一下这个吗,https://stackoverflow.com/q/55610481/9246297 - Nasser Ali Karimi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接