Drupal 7 사이트에서 약 13000 개의 노드를 삭제할 수 있습니다. 한 번에 500 개의 노드를 삭제하기 위해 Views Bulk Operations 모듈을 시도 했지만 시간이 초과되었습니다. 한 번에 50 개의 노드 만 삭제할 수 있습니다.
한 번에 50 개가 넘는 노드를 어떻게 삭제합니까?
Drupal 7 사이트에서 약 13000 개의 노드를 삭제할 수 있습니다. 한 번에 500 개의 노드를 삭제하기 위해 Views Bulk Operations 모듈을 시도 했지만 시간이 초과되었습니다. 한 번에 50 개의 노드 만 삭제할 수 있습니다.
한 번에 50 개가 넘는 노드를 어떻게 삭제합니까?
답변:
VBO는 대량 삭제 노드에 대한 사실상의 표준이며이를 수행하는 더 좋은 방법은 없습니다.
VBO는 일괄 처리하므로 한 번에 1 개 (또는 몇 개의) 노드 만 수행합니다. 따라서 시간 초과 오류가 발생 하면 전체 일괄 작업이 아닌 단일 노드 삭제와 관련된 오류가 발생 합니다.
이와 같은 표준 해상도 는 PHP 최대 실행 시간 을 늘려서 보상하는 것입니다.
Devel을 설치하십시오. 그런 다음 D7의 admin / config / development / generate / content로 이동하여 모든 컨텐츠 유형을 선택하십시오. "모든 컨텐츠 삭제"를 확인하십시오. "몇 개의 노드를 생성 하시겠습니까?"에 0을 입력하십시오.
생성을 클릭하십시오.
모든 노드가 삭제됩니다.
generate-content
( genc
) 명령을 사용할 수도 있습니다 . drush help genc
사용법 정보를 위해.
VBO를 사용하여 Drush에서 실행하십시오. 스케일 테스트 후 다음 방법을 사용하여 150 만 개가 넘는 노드를 삭제했습니다.
drush vbo-execute my_view action :: views_bulk_operations_delete_item
여기서 my_view 는 뷰의 시스템 이름입니다.
drush vbo-list 를 사용하여 사용 가능한 모든보기 및 대량 작업을 표시 할 수도 있습니다 .
이제 VBO가 셸에서 실행되어 피드백을 제공합니다.
이 삭제 모든 거기 모듈. 사이트에서 모든 노드 및 / 또는 사용자를 삭제합니다.
또한 Drush를 지원합니다.
예 :
drush delete-all article Delect all article nodes.
drush delete-all all Delete nodes of all types.
drush delete-all --reset Delete nodes of all types, and reset node, revision and comment counters.
drush delete-all users Delete users.
node_delete()
(더 이상 사용하지 않아도됩니다 node_delete_multiple()
). 더 걱정스럽게도 필드 API를 사용하지 않고 후크를 사용하지 않고 데이터베이스 테이블에서 직접 데이터를 삭제하는 옵션이 있습니다. 배치 작업이 전혀 없으며 스크립트가 종료 될 때까지 실행됩니다. 매우 위험한 모듈 IMHO.
drush delete-all article
기사를 삭제 하려고 할 때 drush 지원 을 통해이 솔루션을 사용할 것입니다.
코드로 작성해야 할 이유가있는 경우 :
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->propertyOrderBy('nid', 'DESC')
->range(1000, 1000);
$result = $query->execute();
node_delete_multiple(array_keys($result['node']));
삭제할 노드를 선택 하는 데 사용할 수있는 다른 방법 도 많이 있습니다 .