如何使用Drush SQL-Dump跳过特定表格?
题
我有一个醉汉配置文件〜/ .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
.
但是当我执行它时,备份文件仍然具有缓存表中的数据。 我究竟做错了什么?
和第二问题是 - 如果我把它放入crontab,我需要在其他地方放置配置文件吗?
我使用苏打版本8。
解决方案
抱歉,我的第一个问题无法帮助您...
你的第2问题问:
和第二问题是 - 如果我把它放入crontab,我需要在其他地方放置配置文件吗?
Drush文档站点链接到Drushrc.php示例文件所说的可以放置RC文件:
https://raw.githubusercontent.com/ Drush-ops / drush / master / master / example.drushrc.php
将此文件重命名为Drushrc.php,并可选择将其复制到下面列出的位置,按优先顺序:
- drupal站点文件夹(例如,站点/ {default | example.com} /drushrc.php)。
- Drupal / Drush和Sites / All / Drush文件夹,或/ Drush文件夹 在Drupal根上方的目录中。
在任何位置的- ,由--config(-c)选项指定。
- 用户的.drush文件夹(即/ .drush / drushrc.php)。
- 系统范围配置文件夹(例如/etc/drush/drc.php)。
- 润滑安装文件夹。
其他提示
除了生成的所有表之外,除了生意经阳极常规表和表以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
.
出于某种原因,缓存_ *在我遗漏9+之前对我不起作用,直到我省略了下划线。但是,这可能是我的(服务器)BASH /终端的特定。 对我有什么工作:
drush sql-dump --skip-tables-list=cache*
.
,您可以始终添加--verbose
以查看实际的MySQL转储及其--ignore参数。
不隶属于 drupal.stackexchange