【问题标题】:How do I get Drush rsync to use site-aliases correctly?如何让 Drush rsync 正确使用站点别名?
【发布时间】:2011-07-01 16:34:09
【问题描述】:

我正在使用 Drush 4.2,我正在尝试将文件从开发服务器同步到我的本地计算机。我的 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 根目录运行它:

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

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

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

有什么想法吗?

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

drush dd @dev:%files

我明白了

找不到目标“@dev:%files”。

更新 2

我发现问题似乎来自 aliases.drushrc.php 文件的位置。我把它放在我正在处理的站点的 drupal 根目录中。我发现如果我将它移到 ~/.drush/ ,那么一切都会完美运行。

不过,我更愿意将其置于源代码控制之下。我试着把它放在网站/默认/但它和以前有同样的问题。我会将赏金奖励给任何告诉我将这个文件放在哪里的人,以便它位于源代码控制的站点根目录下。

【问题讨论】:

  • 语法似乎正确。尝试使用调试选项运行。 drush -d rsync @dev:%files ~/Desktop/test
  • +1 用于源代码控制请求

标签: drupal drush


【解决方案1】:

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

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

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

查看readme了解更多详情。

顺便说一句:您的“本地”别名声明中缺少逗号。 修改为:

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

【讨论】:

    猜你喜欢
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 2016-10-25
    • 2015-08-31
    • 1970-01-01
    相关资源
    最近更新 更多