2010-05-29 39 views
1

花了一段时间将旧数据迁移到新的drupal站点后,我的第一个节点标识已经进入了4位数字区域。Drupal:重新编号节点标识

有没有人有从这个位置重新编号从#1开始的节点id的经验?也许对数据库使用直接查询,或者遍历并重新编号所有节点的模块?

当然,nodereferences必须保留......如果我尝试编写脚本,是否还有其他可能的挂断?

+1

但是,为什么呢? – Kevin 2010-05-29 18:12:32

+0

嗯,这是一个公平的问题。因为感觉不对?我可以看到这种努力可能不值得。 – ack 2010-05-29 21:29:12

+1

你会为零利益承担相当大的风险。 – Rimian 2010-05-30 13:15:35

回答

4

这里没有通用的解决方案。你可以通过一系列直接查询来完成特定的Drupal设置,并且可能会将PHP中的节点ID存储为序列化数据。但是这需要很长时间,并且在运行不同模块的任何站点上都不起作用。这让我们想到凯文的问题:为什么?

高节点ID不引起技术问题,即使他们做到了,4位数的节点ID甚至不高。

2

你最好为你的数据导入写一个过程。在代码中捕获流程。如果您发现一些错误,请清理您的安装并重新开始。安装配置文件会为你做这个。

您应该可以从干净的安装开始,并根据需要多次重复此过程。您不需要在同一安装中运行该进程两次。这意味着你的问题(这不是一个真正的问题)永远不会发生。这也意味着您可以使用版本控制系统管理导入过程。

您可以使用像selenium IDE这样的东西进一步自动执行此过程。

直接查询数据库,对于这样的事情(以及大多数其他事情)是一个可怕的想法。节点ID分布在多个表中,因此您需要非常小心。节点API将是一个更安全和更安全的解决方案。编辑节点时,请使用API​​,因为这就是它的意思。

否则,我会强烈建议不改变节点ID,除非你可以证明风险。在这里做出正确的决定比节点ID更重要。