リビジョンは保持されており、ノードの以前のリビジョンに戻すのは簡単ですが、ユーザーによって本当に削除されたノードを復元できるかどうか疑問に思っていましたか?
データベースのバックアップがある場合(必要があります)、サイトの古いコピーを復元して、その方法で取得できます。
Drupalは、ノードの削除が最終であり、確認ダイアログがあることをユーザーに明確に警告します。
クリスの言うこと。 コード 読み取り
db_query('DELETE FROM {node} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {node_revisions} WHERE nid = %d', $node->nid);
...削除されたということは本当に削除されたことを意味します。
このような事故を防ぐには、ユーザーの権限を制限して、ユーザーがノードを削除できないようにして、ノードのパブリッシュを解除できるようにします。未公開のノードはサイトに表示されません(サイトが正しく構築されている場合)が、データベースでは引き続き使用できます。
はい、これにはいくつかの解決策があります。
私は遅いですが、答えはエンティティバックアップモジュールを使用することです https://www.drupal.org/project/entity_backup
これは、@ marcvangendの回答をリバースエンジニアがクリスが言ったことに基づく提案です。私はphpMyAdminを使用するのが好きですが、それと同じようにコマンドラインで同じプロセスを実行できます。
他の回答と同様に、これはデータベースのバックアップがあることを前提としています。 Backup&Migrateのような素晴らしいモジュールを使用しない言い訳はありません。
node
テーブルに移動して、削除したノードを検索します。うまくいけば、あなたはnidを知っていますが、あなたが今それを理解していない場合。node_revisions
テーブル。削除したノードのNIDを検索してエクスポートします。少なくとも1つの行が必要ですが、それ以上になる場合もあります。すべてをnidでエクスポートします。この方法を使用すると、最後のバックアップ以降のデータベースへの変更を失うことなく、バックアップから単一ノードを復元できます。それを気にせず、最後のバックアップ以降に削除が行われたこと以外は何も考えていない場合は、上記のプロセスを実行する最後のバックアップを完全に復元する方が簡単です。