當一部機器有很多 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, 便沒有這麼深入的使用了