[development] fixing broken nodes

Lluís Forns enboig at gmail.com
Tue Apr 20 08:33:18 UTC 2010


This is the way I am following now. I hope my code will fix all the
"broken" nodes.

2010/4/20 Steven Jones <steven.jones at computerminds.co.uk>:
> Hi Lluís,
>
> You can use Drupal's Batch API to process large sets of objects like
> this. Documentation for the API is here:
>
> http://api.drupal.org/api/group/batch
>
> And it includes an example for iterating over all nodes.
>
> Hope that helps!
>
> Regards
> Steven Jones
> ComputerMinds ltd - Perfect Drupal Websites
>
> Phone : 024 7666 7277
> Mobile : 07702 131 576
> Twitter : darthsteven
> http://www.computerminds.co.uk
>
>
>
> On 20 April 2010 08:38:19 UTC+1, Lluís Forns <enboig at gmail.com> wrote:
>> I have some modules creating nodes calling directly node_save() and
>> now when trying to rebuild permissions table drupal fails at a random
>> node.
>>
>> I think this is caused because of some bad created nodes, and I thing
>> I have found a way to fix them; but it fail because of memory limit.
>> Is there a way to make node_load() not store nodes in cache? (I have
>> around 30k nodes)
>>
>> Thanks
>>
>> <?php
>> function mymodule_update_6008() {
>>  $ret=array();
>>  $res=db_query("SELECT nid, type FROM {node}");
>>  while ($row=db_fetch_array($res)){
>>    $prenode['type']=$row['type'];
>>    $prenode=(object)$prenode;
>>    $node_new=node_object_prepare($prenode);
>>    $node_old=node_load($row['nid']);
>>    foreach($node_old AS $key => $value) {
>>      $node_new->$key = $value;
>>    }
>>    node_save($node_new);
>>  }
>> }
>> ?>
>>
>>
>> --
>> *Les normes hi són perquè hi pensis abans de saltar-te-les
>> *La vida és com una taronja, què esperes a exprimir-la?
>> *Si creus que l'educació és cara, prova la ignorància.
>> *La vida és com una moneda, la pots gastar en el que vulguis però
>> només una vegada.
>> *Abans d'imprimir aquest missatge, pensa en el medi ambient.
>>
>



-- 
*Les normes hi són perquè hi pensis abans de saltar-te-les
*La vida és com una taronja, què esperes a exprimir-la?
*Si creus que l'educació és cara, prova la ignorància.
*La vida és com una moneda, la pots gastar en el que vulguis però
només una vegada.
*Abans d'imprimir aquest missatge, pensa en el medi ambient.


More information about the development mailing list