如何让Drush rsync正确使用站点别名?

时间:2011-02-22 01:53:30

标签: drupal drush

我正在使用Drush 4.2,并尝试将文件从开发服务器rsync到我的本地计算机。我的aliases.drushrc.php位于我当地drupal安装的根目录中,其中包含以下内容:

 $aliases['local'] = array(
      'root' => '/Users/christian/Sites/site-root',
      'path-aliases' => array(
        '%files' => 'sites/default/files'
     ),

 ); 

$aliases['dev'] = array(
    'root' => '/var/www/vhosts/some-domain.com/subdomains/dev/httpdocs',
    'remote-host' => 'some-domain.com',
    'remote-user' => 'root',
    'path-aliases' => array(
      '%drush' => ' /var/tools/drush/drush',
      '%files' => 'sites/default/files',  
     ),
  );

作为测试,我尝试从本地drupal root运行它:

  

drush rsync @dev:%files~ / Desktop / test /

我希望@dev:%文件扩展到远程文件路径,但我得到:

  

您将销毁/ Volumes / MacintoshHD / Users / christian / Desktop / test /中的数据并替换为@dev中的数据:/ Volumes / MacintoshHD / Users / christian / Sites / site-root /%files

有什么想法吗?

更新: 我还发现,当我尝试命令时:

  

drush dd @dev:%files

我得到了

  

目标' @dev:%文件'没找到。

更新2

我发现问题似乎来自aliases.drushrc.php文件的位置。我在我工作的网站的drupal根目录中拥有它。我发现,如果我把它移到〜/ .drush /那么一切都很完美。

我更喜欢将它置于源代码管理之下。我尝试将它放在sites / default /中,但它遇到了和以前一样的问题。我会将赏金奖励给任何告诉我将该文件放在何处的人,以便它在源控制的网站根目录下。

1 个答案:

答案 0 :(得分:2)

您可以在drushrc.php配置文件中设置别名路径。

如果未设置此选项,则drush将搜索这些位置(按此顺序)以查找别名文件。

  • 的/ etc / drush
  • drush安装文件夹
  • $ HOME / .drush
  • 在您的drupal网站的sites文件夹中。

查看readme了解详情。

BTW:你的“本地”别名声明中缺少逗号。 将其修改为:

'%files'=>的网站/默认/文件',