Answers:
克里斯怎么说。代码读取
db_query('DELETE FROM {node} WHERE nid = %d', $node->nid);
db_query('DELETE FROM {node_revisions} WHERE nid = %d', $node->nid);
...所以删除实际上意味着删除。
为防止发生此类事故,您可能希望限制用户权限,以便用户不能删除,而只能取消发布节点。未发布的节点将不会显示在您的站点上(假设您的站点构建正确),但是它们在数据库中仍然可用。
是的,对此有几种解决方案。
这是基于克里斯所说的反向工程师@marcvangend的回答的建议。我喜欢使用phpMyAdmin,但是如果您更喜欢,可以使用命令行执行相同的过程。
像其他答案一样,这假定您已备份数据库。没有借口不要使用诸如Backup&Migrate之类的出色模块。
node
表,搜索已删除的节点。希望你知道这个想法,但是如果你现在不明白的话。node_revisions
桌子。搜索已删除节点的编号并导出。应该至少有一行,但可以更多。用您的nid导出所有内容。使用此方法将使您可以从备份还原单个节点,而不会丢失自上次备份以来对数据库的任何更改。如果您对此并不担心,并且除了上次备份以来已发生删除操作,您什么也别无所求,那么对上次备份进行完全还原以进行上述过程会更容易。
node
桌子却看不到删除的nid怎么办?这是否意味着事情看起来严峻?顺便说一下,该站点是Drupal 8。
我是.late,但是答案是使用实体备份模块 https://www.drupal.org/project/entity_backup