Skip to content

Instantly share code, notes, and snippets.

@vishnuvp
Created June 27, 2014 08:48
Show Gist options
  • Save vishnuvp/cf9359a7bc673f67aa2f to your computer and use it in GitHub Desktop.
Save vishnuvp/cf9359a7bc673f67aa2f to your computer and use it in GitHub Desktop.
Migrate new user accounts from Drupal 6 site to Drupal 7 site. Run this in devel php. Source: stackoverflow
<?php
require_once "./includes/password.inc";
//connect to Drupal 6 database
//syntax:mysqli(hostname,username,password,databasename);
$db= new mysqli('localhost','root','rootpwd','db');
if(mysqli_connect_errno()) {
echo "Conection error. Could not connect to Drupal 6 site!";
exit;
}
//get users from Drupal 6 database
$query="select * from users";
$result=$db->query($query);
//count number of users
$num_results=$result->num_rows;
for($i=0;$i<$num_results;$i++){
//fetch each row/user
$row=$result->fetch_assoc();
//migrate only active users
if($row['status']==1){
//convert password from Drupal 6 style to Drupal 7 style
$hashed_pass='U'.user_hash_password($row['pass'],11);
//check if user with same email address already exists in Drupal 7 database, if it does, do not migrate
if (!user_load_by_mail($row['mail'])) {
$account = new stdClass;
$account->is_new = TRUE;
$account->name = $row['name'];
$account->pass = $hashed_pass;
$account->mail = $row['mail'];
$account->init = $row['mail'];
$account->status = TRUE;
$account->roles = array(DRUPAL_AUTHENTICATED_RID => TRUE);
$account->timezone = variable_get('date_default_timezone', '');
//create user in Drupal 7 site
user_save($account);
//print message
echo "User acount ".$row['name']." has been created\n";
}
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment