私のDrupal 7サイトは、次のような$databases
配列を使用して複数のデータベースに接続します。
$databases = [
'default' => [
'default' => [
'database' => 'examplecom',
'username' => 'example',
'password' => 'sostrongpassword',
'Host' => '',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
],
],
'nondefault' => [
'default' => [
'database' => 'notdefaultdb',
'username' => 'notdefaultuser',
'password' => 'notdefaultpass',
'Host' => '',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
],
],
];
理想的には、drush --database-key=nondefault sql-dump > myfile.sql
のようなことができるようにしたいのですが、それを実現する方法が見当たらないようです。出来ますか?
これを行うカスタムスクリプトを作成してみました。
drush_sql_bootstrap_further();
db_set_active('nondefault');
$sql = drush_sql_get_class();
return $sql->connect(FALSE);
そして、そのスクリプトをdrush scr foo.php
で呼び出しますが、SQL接続(またはその他のコマンド)はデフォルトのデータベースに対して機能するようです。
Drush 8のドキュメントによると、必要なことを行う--database = keyオプションがあります。
次のコマンドを使用して、複数のデータベースがあるD8サイトに対して検証しました。
drush @dev sql-dump --database="blog_import" > ~/tmp/blog_import.sql
Drush sql-cliコマンドにも同じオプションがあるため、次のようなコマンドを使用してダンプをインポートできます。
drush @dev sql-cli --database="blog_import" < ~/tmp/blog_import.sql