Last Updated: February 25, 2016
·
3.419K
· sluxi

Updating Drupal nodes in bulk with Drush scripts

Drush makes doing bulk operations programmatically on a Drupal site with quick snippets of PHP really easy. You can just write a bit of code and run it in a fully bootstrapped Drupal environment with "drush scr script.php". This is good for quick one-off jobs. Making it into a drush command is better for something you will use regularly and/or share with others.

As an example, I had to recently change the language of a bunch of nodes that had been created as language neutral on a Drupal 6 site. I could've used something like the languageassign module and the admin interface, but just writing a simple script was much faster. This script will set all language neutral story nodes to be in finnish instead:

<?php
$i = 0;
$sql = db_query("SELECT n.nid FROM {node} n WHERE language = '' AND type = 'story'");
while ($n = db_fetch_object($sql)) {
  $node = node_load($node->nid);
  $node->language = 'fi';
  node_save($node);
}

1 Response
Add your response

How would you know you're script successfully ran? Can you use drush_print in your command? Would this be logged somewhere?

over 1 year ago ·

Have a fresh tip? Share with Coderwall community!

Post
Post a tip
Did you know?

PHP applications still send a browser full of JavaScript. Hardening the server does not inventory the payment, analytics, and plugin scripts that run after the HTML is delivered.

Security insights from Cside