I just wanted to put the custom code that I used to migrate from the noderef/noderef image helper modules in drupal 6 to Image fields in drupal 7.
I had two types of images showing in drupal 6 - direct image fields which had a specific imagecache preset, and v via nodereference which had a different preset.
Then in drupal 7 I ran the content_migrate stuff for the imagefields and on the content types, added a list field (called image style where the options were named to be the same as available image styles tht I wanted to allow users to choose from) to each content type where the old image references were.
Following this, I ran this code:
/**
* Implementation of hook_menu().
*/
function mymodule_menu() {
$items['imagefix'] = array(
'access callback' => TRUE,
'page callback' => 'mymodule_imagefix',
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Fix Images on the upgraded site.
*/
function mymodule_imagefix() {
// Complete style info for already imported images
$entities = db_select('field_data_field_image', 'f')
->fields('f', array('entity_type', 'bundle', 'deleted', 'entity_id', 'revision_id', 'language', 'delta'))
->execute();
foreach ($entities as $entity) {
db_insert('field_data_field_image_style')
->fields(array(
'entity_type' => $entity->entity_type,
'bundle' => $entity->bundle,
'deleted' => $entity->deleted,
'entity_id' => $entity->entity_id,
'revision_id' => $entity->revision_id,
'language' => $entity->language,
'delta' => $entity->delta,
'field_image_style_value' => 'large',
))
->execute();
}
$revisions = db_select('field_revision_field_image', 'f')
->fields('f', array('entity_type', 'bundle', 'deleted', 'entity_id', 'revision_id', 'language', 'delta'))
->execute();
foreach ($revisions as $revision) {
db_insert('field_revision_field_image_style')
->fields(array(
'entity_type' => $revision->entity_type,
'bundle' => $revision->bundle,
'deleted' => $revision->deleted,
'entity_id' => $revision->entity_id,
'revision_id' => $revision->revision_id,
'language' => $revision->language,
'delta' => $revision->delta,
'field_image_style_value' => 'large',
))
->execute();
}
// 4. Migrate the relevant image data.
$result = db_query("SELECT vid, nid, field_attached_image_nid FROM {content_field_attached_image} WHERE field_attached_image_nid <> '' ORDER BY nid ASC, vid ASC");
$count=0;
foreach ($result as $record) {
// Select current data
$image = db_query("SELECT deleted, MAX(revision_id), language, delta, field_image_fid, field_image_title, field_image_alt, field_image_title, field_image_width, field_image_height FROM {field_data_field_image} WHERE (entity_type = :entity and entity_id = :entity_id)", array(':entity' => 'node', ':entity_id' => $record->field_attached_image_nid))->fetchObject();
$bundle = db_query("Select DISTINCT(type) from {node} where nid = :nid", array(':nid' => $record->nid, ))->fetchField();
drupal_set_message(print_r($image, 1));
drupal_set_message(print_r($bundle . ', ' . $record->nid . '' . $record->vid, 1));
if (!is_null($image->field_image_fid)) {
//Insert Image data
db_insert('field_revision_field_image')
->fields(array(
'entity_type' => 'node',
'bundle' => $bundle,
'deleted' => $image->deleted,
'entity_id' => $record->nid,
'revision_id' => $record->vid,
'language' => $image->language,
'delta' => $image->delta,
'field_image_fid' => $image->field_image_fid,
'field_image_alt' => $image->field_image_alt,
'field_image_title' => $image->field_image_title,
'field_image_title' => $image->field_image_width,
'field_image_title' => $image->field_image_height
))
->execute();
db_merge('field_data_field_image')
->key(array('entity_type' => 'node', 'entity_id' => $record->nid))
->fields(array(
'entity_type' => 'node',
'bundle' => $bundle,
'deleted' => $image->deleted,
'entity_id' => $record->nid,
'revision_id' => $record->vid,
'language' => $image->language,
'delta' => $image->delta,
'field_image_fid' => $image->field_image_fid,
'field_image_alt' => $image->field_image_alt,
'field_image_title' => $image->field_image_title,
'field_image_title' => $image->field_image_width,
'field_image_title' => $image->field_image_height
))
->execute();
// Insert list field data.
db_insert('field_revision_field_image_style')
->fields(array(
'entity_type' => 'node',
'bundle' => $bundle,
'deleted' => $image->deleted,
'entity_id' => $record->nid,
'revision_id' => $record->vid,
'language' => $image->language,
'delta' => $image->delta,
'field_image_style_value' => 'medium',
))
->execute();
db_merge('field_data_field_image_style')
->key(array('entity_type' => 'node', 'entity_id' => $record->nid))
->fields(array(
'entity_type' => 'node',
'bundle' => $bundle,
'deleted' => $image->deleted,
'entity_id' => $record->nid,
'revision_id' => $record->vid,
'language' => $image->language,
'delta' => $image->delta,
'field_image_style_value' => 'medium',
))
->execute();
$count++;
}
}
drupal_set_message($count);
}
Code for changing the image style to what is set in the image_style field is here: http://drupal.org/node/1363250