Drush SQL-Dump로 특정 테이블을 건너 뛰는 방법은 무엇입니까?


9

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

그러나 그것을 실행할 때 백업 파일에는 여전히 캐시 테이블에 데이터가 있습니다. 내가 무엇을 잘못하고 있지?

그리고 두 번째 질문은-이것을 crontab에 넣으면 구성 파일을 다른 곳에 두어야합니까?

Drush 버전 8을 사용합니다.


1
drushrc.php실행되지 않는지 궁금 합니다. $options['structure-tables']in의 var_dump를 drushrc.php실행하여 실행되고 있는지 확인하십시오.
cleaver

답변:


0

첫 번째 질문으로 많은 도움을 드릴 수 없습니다 ...

두 번째 질문 :

그리고 두 번째 질문은-이것을 crontab에 넣으면 구성 파일을 다른 곳에 두어야합니까?

drushrc.php 예제 파일에 drush 문서 사이트 링크 는 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를 실행하도록 구성하는 것이 좋습니다 . rc 파일을 시스템 전체 구성 폴더 위치 (5)에 두는 것이 좋습니다. 그렇습니다. 현지화 된 Drush rc 파일이 많을수록 필요에 따라 시스템 전체 구성 파일을 무시해야합니다.


이 모든 링크는 이제 404입니다. :(
Dale Anderson

@DaleAnderson ... 이것은 인터넷이며 영구적 인 것은 없습니다. 다음은 편리한 사용법입니다. 사용 방법을 익히는 것이 좋습니다. drush.org 사이트 web.archive.org/web/20150905130324/http://www.drush.org의 2015 년 9 월 스냅 샷을 선택했습니다 . 80 / en /… 현재 Drupal Console 또는 Drush 9 문서와 같은 최신 도구도 고려해야합니다.
tenken February

24

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 덤프 문서


--extra=--no-data나를 위해 작동하지 않는,하지만 난 할 수 있었다 --skip-tables-list="*"그것은했다.
greggles

"cache,cache_*"쉘이 cache_*작업 디렉토리에서 호출 된 파일과 일치하지 못하게하는 것과 같이 따옴표를 사용할 수 있습니다 .
rudolfbyker

0

어떤 이유로 든 밑줄을 생략 할 때까지 drush 9+에서 cache_ *가 작동하지 않았습니다. 그러나 이것은 내 (서버) bash / 터미널에만 해당 될 수 있습니다. 나를 위해 일한 것 :

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

--verbose실제 mysql 덤프와 --ignore 매개 변수를 보려면 언제든지를 추가 할 수 있습니다 .


bash를 사용하면 cache_*현재 디렉토리의 파일과 일치하면 bash는 해당 파일 이름을 가져 와서 인수로 사용합니다. 작은 따옴표를 묶어 리터럴 값이 glob하는 파일 대신 명령에 전달되도록 할 수 있습니다.
greggles
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.