230 lines
6.5 KiB
Plaintext
230 lines
6.5 KiB
Plaintext
<?php
|
|
|
|
/**
|
|
* @file
|
|
* Set up the migration example module.
|
|
*/
|
|
|
|
require_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'migrate_example') .
|
|
'/beer.install.inc';
|
|
require_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'migrate_example') .
|
|
'/wine.install.inc';
|
|
|
|
function migrate_example_schema() {
|
|
$schema = migrate_example_beer_schema();
|
|
$schema += migrate_example_wine_schema();
|
|
return $schema;
|
|
}
|
|
|
|
function migrate_example_install() {
|
|
migrate_example_beer_install();
|
|
migrate_example_wine_install();
|
|
// A simple format for testing migration of format
|
|
$example_format = array(
|
|
'format' => 'migrate_example',
|
|
'name' => 'Migrate example format',
|
|
'weight' => 20,
|
|
'filters' => array(
|
|
// Escape all HTML.
|
|
'filter_html_escape' => array(
|
|
'weight' => 0,
|
|
'status' => 1,
|
|
),
|
|
),
|
|
);
|
|
$example_format = (object) $example_format;
|
|
filter_format_save($example_format);
|
|
}
|
|
|
|
function migrate_example_uninstall() {
|
|
migrate_example_beer_uninstall();
|
|
migrate_example_wine_uninstall();
|
|
if ($format = filter_format_load('migrate_example')) {
|
|
filter_format_disable($format);
|
|
}
|
|
}
|
|
|
|
function migrate_example_disable() {
|
|
migrate_example_beer_disable();
|
|
migrate_example_wine_disable();
|
|
}
|
|
|
|
/**
|
|
* Convert modificationdate datetime field to modificationdatetime int field.
|
|
*/
|
|
function migrate_example_update_7001() {
|
|
$ret = array();
|
|
db_add_field('migrate_example_beer_legacy_urls', 'modificationdatetime', array(
|
|
'type' => 'int',
|
|
'unsigned' => TRUE,
|
|
'not null' => FALSE,
|
|
)
|
|
);
|
|
|
|
$result = db_select('migrate_example_beer_legacy_urls', 'ms')
|
|
->fields('ms', array('machine_name', 'modificationdate'))
|
|
->execute();
|
|
foreach ($result as $row) {
|
|
$modificationdatetime = strtotime($row->modificationdate);
|
|
db_update('migrate_example_beer_legacy_urls')
|
|
->fields(array('modificationdatetime' => $modificationdatetime))
|
|
->condition('machine_name', $row->machineName)
|
|
->execute();
|
|
}
|
|
|
|
db_drop_field('migrate_example_beer_legacy_urls', 'modificationdate');
|
|
|
|
$ret[] = t('Converted modificationdate datetime field to modificationdatetime int field');
|
|
return $ret;
|
|
}
|
|
|
|
/**
|
|
* Add image alt/title/description columns.
|
|
*/
|
|
function migrate_example_update_7002() {
|
|
$ret = array();
|
|
db_add_field('migrate_example_beer_node', 'image_alt', array(
|
|
'type' => 'varchar',
|
|
'length' => 255,
|
|
'not null' => FALSE,
|
|
'description' => 'Image ALT',
|
|
)
|
|
);
|
|
db_add_field('migrate_example_beer_node', 'image_title', array(
|
|
'type' => 'varchar',
|
|
'length' => 255,
|
|
'not null' => FALSE,
|
|
'description' => 'Image title',
|
|
)
|
|
);
|
|
db_add_field('migrate_example_beer_node', 'image_description', array(
|
|
'type' => 'varchar',
|
|
'length' => 255,
|
|
'not null' => FALSE,
|
|
'description' => 'Image description',
|
|
)
|
|
);
|
|
db_update('migrate_example_beer_node')
|
|
->fields(array(
|
|
'image_alt' => 'Heinekin alt',
|
|
'image_title' => 'Heinekin title',
|
|
'image_description' => 'Heinekin description',
|
|
))
|
|
->condition('bid', 99999999)
|
|
->execute();
|
|
$ret[] = t('Added image_alt, image_title, and image_description fields.');
|
|
return $ret;
|
|
}
|
|
|
|
/**
|
|
* Add data for remote file examples.
|
|
*/
|
|
function migrate_example_update_7003() {
|
|
$ret = array();
|
|
db_create_table('migrate_example_wine_files', migrate_example_wine_schema_files());
|
|
migrate_example_wine_data_files();
|
|
db_add_field('migrate_example_wine_account', 'imageid', array(
|
|
'type' => 'int',
|
|
'unsigned' => TRUE,
|
|
'not null' => FALSE,
|
|
'description' => 'Image ID.',
|
|
)
|
|
);
|
|
db_update('migrate_example_wine_account')
|
|
->fields(array('imageid' => 1))
|
|
->condition('accountid', 9)
|
|
->execute();
|
|
$ret[] = t('Added migrate_example_wine_files table.');
|
|
$ret[] = t('Added imageid field to migrate_example_wine_account table.');
|
|
return $ret;
|
|
}
|
|
|
|
/**
|
|
* Add sample data for file fields. And, make the image field multi-value.
|
|
*/
|
|
function migrate_example_update_7004() {
|
|
$ret = array();
|
|
db_update('migrate_example_wine')
|
|
->fields(array('image' => 'http://cyrve.com/files/penguin.jpeg'))
|
|
->condition('wineid', 1)
|
|
->execute();
|
|
db_update('migrate_example_wine')
|
|
->fields(array('image' => 'http://cyrve.com/files/rioja.jpeg|http://cyrve.com/files/boutisse_0.jpeg'))
|
|
->condition('wineid', 2)
|
|
->execute();
|
|
$field = field_info_field('field_migrate_example_image');
|
|
if ($field) {
|
|
$field['cardinality'] = -1; // Unlimited
|
|
field_update_field($field);
|
|
}
|
|
else {
|
|
migrate_example_beer_image();
|
|
migrate_example_wine_fields();
|
|
}
|
|
$ret[] = t('Added sample data for file fields.');
|
|
$ret[] = t('Made field_migrate_example_image multi-value');
|
|
return $ret;
|
|
}
|
|
|
|
/**
|
|
* Expand file field example data.
|
|
*/
|
|
function migrate_example_update_7005() {
|
|
$ret = array();
|
|
// Easiest to just start over from scratch
|
|
if (db_table_exists('migrate_example_wine_files')) {
|
|
db_drop_table('migrate_example_wine_files');
|
|
}
|
|
db_create_table('migrate_example_wine_files', migrate_example_wine_schema_files());
|
|
migrate_example_wine_data_files();
|
|
|
|
// Moved this data to migrate_example_wine_files
|
|
if (db_field_exists('migrate_example_wine', 'image')) {
|
|
db_drop_field('migrate_example_wine', 'image');
|
|
}
|
|
|
|
$ret[] = t('Reconfigured sample data for file fields.');
|
|
return $ret;
|
|
}
|
|
|
|
/**
|
|
* Sample data for table destinations..
|
|
*/
|
|
function migrate_example_update_7006() {
|
|
$ret = array();
|
|
db_create_table('migrate_example_wine_table_source', migrate_example_wine_schema_table_source());
|
|
db_create_table('migrate_example_wine_table_dest', migrate_example_wine_schema_table_dest());
|
|
migrate_example_wine_data_table_source();
|
|
|
|
$ret[] = t('Added sample data for table destinations.');
|
|
return $ret;
|
|
}
|
|
|
|
/**
|
|
* Add data for testing/demonstrating roles.
|
|
*/
|
|
function migrate_example_update_7007() {
|
|
$ret = array();
|
|
db_add_field('migrate_example_wine_account', 'positions', array(
|
|
'type' => 'varchar',
|
|
'length' => 255,
|
|
'not null' => FALSE,
|
|
'description' => 'Positions held',
|
|
)
|
|
);
|
|
$query = db_update('migrate_example_wine_account')
|
|
->fields(array('positions' => '5'))
|
|
->condition('accountid', 1)
|
|
->execute();
|
|
db_update('migrate_example_wine_account')
|
|
->fields(array('positions' => '18'))
|
|
->condition('accountid', 3)
|
|
->execute();
|
|
db_update('migrate_example_wine_account')
|
|
->fields(array('positions' => '5,18'))
|
|
->condition('accountid', 9)
|
|
->execute();
|
|
$ret[] = t('Added positions field to migrate_example_wine_account table.');
|
|
return $ret;
|
|
}
|