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/ に移動すると、すべてが完全に機能することがわかりました。
ただし、ソース管理下に置くことをお勧めします。サイト/デフォルト/に入れてみましたが、以前と同じ問題がありました。このファイルをソース管理サイトのルートの下に配置する場所を教えてくれた人に賞金を授与します。