Thursday, September 13, 2012

Adding Drupal nodes with a specific ID

As part of a drupal upgrade/migration I had a requirement to create a few thousand nodes with specific IDs. The internet said it could not be done but I did not believe it.

After diving into the bowels of the drupal code I found the spot which did the creating and it seemed to be doing something quite reasonable with the new node ID.

With just a small amount of convincing I managed to get it to do what I wanted.

diff -ru vanilla/drupal-7.12/modules/node/node.module web/drupal/modules/node/node.module
--- vanilla/drupal-7.12/modules/node/node.module        2012-02-02 09:03:14.000000000 +1100
+++ web/drupal/modules/node/node.module     2012-05-28 16:37:36.827171000 +1000
@@ -1095,6 +1095,12 @@
     if ($node->is_new) {
       // For new nodes, save new records for both the node itself and the node
       // revision.
+if(isset($node->request_nid))
+{
+       echo "Requested save new node with nid {$node->request_nid}\n";
+       $node->nid = $node->request_nid;
+       //print_r($node);
+}
       drupal_write_record('node', $node);
       _node_save_revision($node, $user->uid);
       $op = 'insert';


Creating a node can now be done like this:
$node = new stdClass();
$node->type = ...;
node_object_prepare($node);
// fill in node details here...
$node->request_nid = $my_nid;
node_save($node);


That seems quite trivial now. I don't know why so many people say it can't be done.

28 comments:

  1. Great post! Thanks a lot for sharing with us.
    Kevin Right

    ReplyDelete
  2. Your site has a lot of useful information for myself. I visit regularly. Hope to have more quality items.
    shell shockers unblocked

    ReplyDelete
  3. Manga Panda is a popular Web site for Manga. You will also find a series of the latest manga comics on this web site. These latest manga are alphabetically arranged.
    There's 1000 free English translation comic series available at Mangapanda. Popular Manga, Manga List, and Latest Releases tabs are available on the Manga Panda website. The most popular web site on Manga.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. I haven't tried doing it yet but I guess I have to try. Thanks!

    https://www.seo-tampa.org

    ReplyDelete
  6. Brazil is a member of the United Nations (UN). Brazil is a member of the World Trade Organization (WTO). Brazil is a member of the International Monetery Fun (IMF). http://www.confiduss.com/en/jurisdictions/brazil/politics/

    ReplyDelete
  7. Hello there! I could have sworn I’ve been to this blog
    before but after reading through some of the post I realized
    it’s new to me. Anyhow, I’m definitely delighted I found it and I’ll be bookmarking and checking back
    frequently!

    카지노사이트
    바카라사이트
    홈카지노

    ReplyDelete
  8. Attractive section of content. I just stumbled upon your web site
    and in accession capital to assert that I acquire in fact enjoyed account your blog posts.
    Anyway I will be subscribing to your feeds and even I achievement you access consistently
    fast.


    바카라사이트
    온라인카지노
    카지노

    ReplyDelete
  9. I want to to thank you for this good read!! I absolutely loved every bit of it.

    I’ve got you book-marked to look at new things you post…

    스포츠토토
    토토사이트
    먹튀검증


    ReplyDelete
  10. I think the admin of this site is actually working hard in favor of his web site, because here every data is quality based
    information.


    토토사이트
    토토
    안전놀이터

    ReplyDelete
  11. This type of article will be able 야설 to think and analyzed to the readers thats leads them in a bright future.

    ReplyDelete
  12. I always like finding a site that gives you very good ideas because I like learning new stuff. Happy that I found your site because I greatly liked it and I anticipate your following po st. A fantastic blog and i’ll come back again for more useful content…
    일본야동

    ReplyDelete
  13. I think this is one of the most significant information for me. And i’m glad reading your article.국산야동 But should remark on some general things, The web site style is perfect, the articles is really great.

    ReplyDelete
  14. Nice post. I learn something more challenging on different blogs everyday. It will always be stimulating to read content from other writers and practice a little something from their store. I’d prefer to use some with the content on my blog whether you don’t mind. Natually I’ll give you a link on your web blog. Thanks for sharing.

    Educative.io
    Information
    Click Here
    Visit Web

    ReplyDelete
  15. Glad to see this topic, I gained new knowledge because of this. Thanks. https://cincinnatiseo.io/

    ReplyDelete
  16. Very detailed and high quality instructions, thank you! I want to add that to find a good developer nowadays it is not enough to look through various sites with resumes and the like on your own. The market is very saturated and you need to entrust this job to a professional HR specialist. If you don't have such an expert on your staff, the best thing to do is to contact a company that offers hr outsourcing solutionsfor outsourcing.

    ReplyDelete
  17. I am impressed. You are truly well informed and very intelligent. You wrote something that people could understand and made the subject intriguing for everyone. fnf

    ReplyDelete
  18. Very good info. Lucky me I ran across your website by accident (stumbleupon). sportstoto I have book-marked it for later.

    먹튀검증
    바카라사이트

    ReplyDelete
  19. This site is interesting and indeed, very helpful. Thanks for sharing this! Drywall

    ReplyDelete
  20. Drupal's node creation and ID assignment can be quite rigid due to how it handles database entries and their unique identifiers. By directly modifying the node.module code cookie clicker and setting the node ID manually using $node->request_nid, you've essentially bypassed the system's default behavior.

    ReplyDelete
  21. First Aid Training in Perth provides essential life-saving skills to individuals, equipping them with the knowledge and confidence to respond effectively in emergencies. Courses cover CPR, wound care, choking relief, and more, ensuring participants can provide immediate assistance until professional help arrives. Experienced trainers in Perth offer hands-on sessions, simulations, and up-to-date information on the latest first aid protocols.

    Whether for workplace compliance or personal preparedness, First Aid Training in Perth prioritizes practical skills that can make a crucial difference in critical situations. Invest in your safety and the well-being of others by enrolling in comprehensive First aid training perth today.

    ReplyDelete