답변:
크리스의 말. 코드는 읽습니다
db_query('DELETE FROM {node} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {node_revisions} WHERE nid = %d', $node->nid);
... 삭제는 실제로 삭제됨을 의미합니다.
이와 같은 사고를 방지하기 위해 사용자 권한을 제한하여 사용자가 삭제할 수는 없지만 노드를 게시 취소 만 할 수 있습니다. 게시되지 않은 노드는 사이트에 표시되지 않지만 (사이트가 올바르게 구축되었다고 가정) 데이터베이스에서 계속 사용할 수 있습니다.
예, 이에 대한 몇 가지 솔루션이 있습니다.
다음은 Chris가 리버스 엔지니어 @marcvangend의 답변에 대해 제안한 제안입니다. phpMyAdmin을 사용하고 싶지만 더 좋아한다면 명령 줄에서도 동일한 프로세스를 수행 할 수 있습니다.
다른 답변과 마찬가지로 데이터베이스 백업이 있다고 가정합니다. Backup & Migrate와 같은 멋진 모듈을 사용하지 않아도됩니다.
node
테이블로 이동 하여 삭제 된 노드를 검색하십시오. 바라건대 당신은 nid를 알고 있지만, 지금 이해하지 못한다면.node_revisions
테이블 로 가십시오 . 삭제 된 노드에서 검색하여 내보내십시오. 행이 하나 이상 있어야하지만 더 많을 수 있습니다. 당신의 nid로 모든 것을 내 보냅니다.이 방법을 사용하면 마지막 백업 이후 데이터베이스에 대한 변경 사항을 잃지 않고 백업에서 단일 노드를 복원 할 수 있습니다. 그것에 대해 걱정하지 않고 마지막 백업 이후 삭제가 발생했다고 생각하지 않는다면 위의 프로세스를 수행하기 위해 마지막 백업의 전체 복원을 수행하는 것이 더 쉬울 것입니다.
node
테이블 로 이동 한 후 삭제 된 nid가 표시되지 않으면 어떻게합니까? 이것은 상황이 어둡게 보이는 것을 의미합니까? 그런데 사이트는 Drupal 8입니다.
나는 .late이지만 대답은 엔티티 백업 모듈을 사용하는 것입니다 https://www.drupal.org/project/entity_backup