web-dev-qa-db-ja.com

drush sql-dumpで特定のテーブルをスキップする方法は?

Drush設定ファイル〜/ .drush/drushrc.phpがあります:

if (!isset($options['structure-tables']['common'])) {
  $options['structure-tables']['common'] = array(
    'cache', 'cache_*', 'history', 'search_*', 'sessions', 'watchdog'
  );
}

$options['structure-tables']['common'] = array_merge($options['structure-tables']['common'], 
  array('ctools_css_cache', 'ctools_object_cache', 'logz', 'views_object_cache')
);

そして、私はbashスクリプトファイルを持っています:

/usr/bin/drush sql-dump --root="/home/username/domains/sitename/www" --skip-tables-key="common" --gzip --result-file=/home/username/backup/$year/$month/dbname_$date_now_time.sql

しかし、それを実行すると、バックアップファイルにはまだキャッシュテーブルにデータがあります。何が悪いのですか?

そして2番目の質問は-これをcrontabに入れた場合、構成ファイルをどこかに置く必要がありますか?

Drushバージョン8を使用しています。

9
dark_kz

申し訳ありませんが、最初の質問ではあまりお手伝いできません...

2つ目の質問:

そして2番目の質問は-これをcrontabに入れた場合、構成ファイルをどこかに置く必要がありますか?

drushのドキュメンテーションサイトは、drushrc.phpサンプルファイルにリンクしています は、rcファイルを配置できる場所を示しています。

https://raw.githubusercontent.com/drush-ops/drush/master/examples/example.drushrc.php

このファイルの名前をdrushrc.phpに変更し、必要に応じて、優先順位の高い順に以下の場所のいずれかにコピーします。

  1. Drupalサイトフォルダー(たとえば、sites/{default | example.com} /drushrc.php)。
  2. Drupal/drushおよびsites/all/drushフォルダー、またはDrupalルートの上のディレクトリにある/ drushフォルダー。
  3. --config(-c)オプションで指定された任意の場所。
  4. ユーザーの.drushフォルダー(例:〜/ .drush/drushrc.php)。
  5. システム全体の構成フォルダー(/etc/drush/drushrc.phpなど)。
  6. Drushインストールフォルダ。

Cronの場合、ドキュメントで推奨 Drushは、Webサーバーを実行するのと同じユーザーとして実行するように構成する必要があります。とは言っても、rcファイルをシステム全体の構成フォルダー(5)に配置することをお勧めします。はい。ローカライズされたDrush rcファイルは、必要に応じてシステム全体の構成ファイルをオーバーライドする必要があります(まあ)。

0
tenken

cacheテーブルとcache_で始まるテーブルを除くすべてのテーブルをダンプします。

drush sql-dump --skip-tables-list=cache,cache_* > dumpfile.sql

データベース構造のみ。データがまったくありません。

drush sql-dump --extra=--no-data > dumpfile.sql

データのみ。キャッシュデータもキャッシュ構造もありません。

drush sql-dump --skip-tables-list=cache,cache_* --data-only > dumpfile.sql

キャッシュデータはありませんが、構造にダンプします。

drush sql-dump --structure-tables-list=cache,cache_* > dumpfile.sql

sql-dumpドキュメント

24
Francisco Luz

何らかの理由で、アンダースコアを省略するまで、drush 9以降ではcache_ *が機能しませんでした。ただし、これは私の(サーバー)bash /ターミナルに固有の場合があります。私のために働いたもの:

drush sql-dump --skip-tables-list=cache*

そして、いつでも--verboseを追加して、実際のmysqlダンプを見ることができ、それは--ignoreパラメーターです。

0
awm