2

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/ に移動すると、すべてが完全に機能することがわかりました。

ただし、ソース管理下に置くことをお勧めします。サイト/デフォルト/に入れてみましたが、以前と同じ問題がありました。このファイルをソース管理サイトのルートの下に配置する場所を教えてくれた人に賞金を授与します。

4

1 に答える 1

2

drushrc.php 設定ファイルでエイリアス パスを設定できます。

これが設定されていない場合、drush はこれらの場所を (この順序で) エイリアス ファイルを検索します。

  • /etc/drush
  • drush インストールフォルダー
  • $HOME/.drush
  • drupal サイトの sites フォルダー内

詳細については、 readmeを確認してください。

ところで:「ローカル」エイリアスの宣言にカンマがありません。次のように変更します。

'%files' => 'sites/default/files',

于 2011-02-28T18:26:39.503 に答える