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に入れると、構成ファイルを他の場所に置く必要がありますか?
私はドラッションバージョン8を使います。
解決
すみません、私はあなたの最初の質問であなたを多くのことができない...
あなたの第2回疑問依頼:
と2番目の質問は - これをcrontabに入れると、構成ファイルを他の場所に置く必要がありますか?
Drush Documentation Site Links Drushrc.phpの例ファイル RCファイルを配置することがあります:
https://raw.githubusercontent.com/ drush-ops / drush / master / example / example.drushrc.php
このファイルの名前をDrushrc.phpに変更し、それを優先順に下記の場所の1つにコピーします。
- Drupalサイトフォルダ(例:sites / {デフォルト| example.com} /drushrc.php)。
- DRUPAL / DRUSHとサイト/全/ドラッションフォルダ、または/ Drushフォルダ Drupalルートの上のディレクトリに。
- --config(-c)オプションで指定されている任意の場所で。
- ユーザーの.drushフォルダ(すなわち〜/ .drush / drushrc.php)。
- システム全体の設定フォルダ(例えば、/etc/drush/drushrc.php)。
- Drushインストールフォルダ。
他のヒント
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
.
何らかの理由でcache_ *はDrush 9以降ではアンダースコアを省略するまで私には機能しませんでした。ただし、これは私の(サーバー)Bash / Terminalに固有のものかもしれません。 私のために何が働いていました:
drush sql-dump --skip-tables-list=cache*
.
と実際のMySQL Dumpと--ignoreパラメータを表示するには、常に--verbose
を追加できます。