it-swarm-ko.tech

node_delete ()는 노드를 삭제하지 않습니다.

Drush 함수를 사용하여 내 drupal 6 설치에있는 drealty 모듈의 모든 노드를 플러시하려고합니다. 그러나 뭔가 메모리 누수가 발생하고 node_delete 후 노드가 삭제되지 않습니다. 내가 무엇을 할 수 있습니까?

다음은 메모리 소모 오류입니다.

drush rets-flush
PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in /home/directory/public_html/sites/all/modules/filefield/field_file.inc on line 300
Drush command terminated abnormally due to an unrecoverable error.   [error]
Error: Allowed memory size of 134217728 bytes exhausted (tried to
allocate 71 bytes) in
/home/directory/public_html/sites/all/modules/filefield/field_file.inc,
line 300

다음은 drush rets-flush 기능입니다.

function drush_drealty_rets_flush() {
  set_time_limit(0);

  $result = db_query("SELECT nid FROM {node} WHERE type = 'drealty_property' OR type = 'drealty_agent' OR type = 'drealty_office' OR type = 'drealty_open_house'", $conid);

  $count = 0;
  while ($nid = db_fetch_object($result)) {
    node_delete($nid->nid);
    drush_log(dt('Deleting node id: @nid. ', array('@nid' => $nid->nid)));
    $count++;
  }
  drush_log(dt('Deleted @count nodes', array('@count' => $count)), 'success');
}

총 5000 개의 레코드가 있습니다.

2
Arosboro

Drealty 유형의 노드가 충분하면 여전히 메모리가 부족하다는 것을 알 수 있습니다. 이는 node_delete()node_load()을 호출하고 각 노드를 정적 캐시에 추가하기 때문입니다. 이 문제가 발생하면 50-100 회 반복 할 때마다 node_load(NULL, NULL, TRUE)을 호출하면됩니다.

2
justintime

직접 답을 찾았습니다. 나는 관리자로 drush를 실행해야했다.

drush -u admin rets-flush

나는 drush가 관리자로 자동으로 실행되었다고 생각했지만 그렇지 않은 것 같습니다.

2
Arosboro