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.

31 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 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
  10. This type of article will be able 야설 to think and analyzed to the readers thats leads them in a bright future.

    ReplyDelete
  11. 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
  12. 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
  13. 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
  14. Glad to see this topic, I gained new knowledge because of this. Thanks. https://cincinnatiseo.io/

    ReplyDelete
  15. 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
  16. 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
  17. Very good info. Lucky me I ran across your website by accident (stumbleupon). sportstoto I have book-marked it for later.

    먹튀검증
    바카라사이트

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

    ReplyDelete
  19. 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
  20. 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
  21. Absolutely loving my refurbished phone! It's amazing finding a powerful device at such a great price. Plus, it feels fantastic knowing I gave a pre-loved phone a second life and helped out the environment. Win-win! Anyone else have positive experiences with refurbished phones? Share your stories!

    ReplyDelete
  22. The best part about the online games play for free environment we’ve created at GAAMESS?

    ReplyDelete
  23. This is a really great resource! After doing a thorough investigation, I discovered a really enjoyable physical interaction. Please let me know how to receive updates whenever a new post is made. This is captivating me.
    play gacha life game

    ReplyDelete
  24. I find this resource incredibly valuable! After delving into it extensively, I stumbled upon a delightful physical activity. Kindly advise on how to stay updated on new posts. I'm thoroughly engrossed in this.

    Play this amazing game red ball 4

    ReplyDelete