Where Drush 9 aliases file should be located in Drupal 8?
Asked Answered
P

1

7

I have tried some ways to create an alias for my local Drupal project, I'm referring to : https://www.drupal.org/node/1401522
https://www.drupal.org/project/drush/issues/831272
https://www.drupal.org/project/drush/issues/786766

I can connect by running this command :

drush --root=C:/wamp64/www/executive-coatings --uri=http://localhost:81/executive-coatings status

Output :

 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

But when I try to use a drush alias it doesn't work. Here my alias file :

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

Running drush @local status returns [preflight] The alias @local could not be found.

I think I put my alias file in the wrong directory, can you provide the correct path ?

Pentheam answered 9/4, 2019 at 8:7 Comment(0)
G
10

Alias file location is not your only issue here, because you are running Drush 9.x. Here the major changes between Drush 8.x and Drush 9.x regarding aliases :

  • Site aliases are no longer PHP files but YAML files. Fortunately, Drush 9.x comes with a command to convert your old drush 8 aliases :

     drush site:alias-convert
    
  • The user alias locations used in Drush 8 (~/.drush/sites, /etc/drush/sites) are by default no longer parsed, but you can register any location where alias files may be placed in your ~/.drush/drush.yml configuration file. Setting the old Drush 8 paths can be done automatically by running :

     drush core:init
    

It writes the following to ~/.drush/drush.yml :

    drush:
      paths:
        alias-path:
          - '${env.home}/.drush/sites'
          - /etc/drush/sites

For example in your case, defining a local environment for the website executive-coatings aliased ecc may be done in the file (provided this location is registered as mentioned above) ~/.drush/sites/ecc.site.yml.

  • You can also define environment aliases (eg. @dev, @preprod, etc.) for a given website at the following location (under the project root of that website, using self in the file naming) :

     <DRUPAL_ROOT>/drush/sites/self.site.yml
    

Useful links :

Genu answered 9/4, 2019 at 14:35 Comment(4)
Thanks, it is correct I try with .yml file and it works.Pentheam
As you see in my question it shows ` Drupal version : 8.6.13` but you mentioned my drupal version is 9, do you have any idea here?Pentheam
I mentioned your Drush version : Drush version : 9.6.2. It is confusing though because Drush and Drupal versioning is not correlated, see docs.drush.org/en/master/install/#drupal-compatibilityGenu
Can you check this as well, stackoverflow.com/q/55610481/9246297Pentheam

© 2022 - 2024 — McMap. All rights reserved.