Drush Alias - 進階 Drush 技巧

當一部機器有很多 Drupal installation 的時候,
你便會經常:

cd /var/www/site1
drush en -y views

cd /var/www/site2
drush en -y views

再加上測試環境:
cd /var/www/site1_uat
drush en -y views

cd /var/www/site2_uat
drush en -y views

就變得很難維護

使用了 drush alias 之後, 你可以:

//site 1
drush @site1.uat en -y views
drush @site1.live en -y views
//site 2
drush @site2.uat en -y views
drush @site2.live en -y views

實作:

在你的 drush folder 內有一個 example folder,
內有一個 example.aliases.drushrc.php
將它複製到 drush folder 內, 改成 site1.aliases.drushrc.php
增加內容:

<?php
 $aliases
['uat'] = array(
  
'root' => '/var/www/site1_uat',
  
'uri' => 'uat.joetsuihk.com',
 );
 
$aliases['live'] = array(
  
'root' => '/var/www/site1',
  
'uri' => 'uat.joetsuihk.com',
 );
?>

site2.aliases.drushrc.php

<?php
 $aliases
['uat'] = array(
  
'root' => '/var/www/site2_uat',
  
'uri' => 'uat.drinkingdrupal.com',
 );
 
$aliases['live'] = array(
  
'root' => '/var/www/site2',
  
'uri' => 'uat.drinkingdrupal.com',
 );
?>

檔名前端是代號, 使用 domain 很合適 (site1, site2 其實不適合)
$aliases 的 key 則應該使用環境代號, 例如 dev, uat, live 等

Drush 的 example 資料夾內的 example.aliases.drushrc.php 內有更多例子,
例如可以使用 ssh 連線到另一台電腦的 drush,
指定資料庫路徑, 然後用 sql-sync 實現 deployment 等等
我覺得有點 over kill, 便沒有這麼深入的使用了

Google