回答:
クリスの言うこと。コードが読み
db_query('DELETE FROM {node} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {node_revisions} WHERE nid = %d', $node->nid);
...削除は本当に削除されたことを意味します。
このような事故を防ぐために、ユーザーがノードを削除することはできず、公開を解除できないように、ユーザーのアクセス許可を制限することができます。非公開ノードはサイトに表示されません(サイトが正しく構築されていると仮定します)が、データベースで利用可能なままです。
はい、これにはいくつかの解決策があります。
以下は、@ marcvangendの答えをリバースエンジニアリングするというChrisの発言に基づいた提案です。私はphpMyAdminを使用するのが好きですが、それがよければ、コマンドラインで同じプロセスを実行できます。
他の回答と同様に、これはデータベースのバックアップがあることを前提としています。Backup&Migrateのような素晴らしいモジュールを使用しない理由はありません。
node
テーブルに移動し、削除したノードを検索します。できればnidを知っているが、今それを理解していない場合。node_revisions
テーブルに行きます。削除されたノードのnidを検索してエクスポートします。少なくとも1つの行が必要ですが、複数の行がある場合もあります。すべてをnidでエクスポートします。この方法を使用すると、最後のバックアップ以降のデータベースへの変更を失うことなく、バックアップから単一ノードを復元できます。そのことを気にせず、最後のバックアップ以降に削除が行われたと思われる場合は、上記のプロセスを実行する最後のバックアップの完全な復元を行う方が簡単です。
node
テーブルに移動しても、削除されたNIDが表示されない場合はどうなりますか?これは物事が厳しいように見えることを意味しますか?ところで、サイトはDrupal 8です。
私はam.lateですが、答えはエンティティバックアップモジュールhttps://www.drupal.org/project/entity_backupを使用することです