function migrate_update_7203 in Migrate 7.2
Add database tracking of per-group info.
File
- ./
migrate.install, line 468 - Migrate module installation
Code
function migrate_update_7203() {
$ret = '';
if (!db_table_exists('migrate_group')) {
$ret .= t('Create migrate_group table') . "\n";
db_create_table('migrate_group', migrate_schema_group());
}
if (!db_field_exists('migrate_status', 'group_name')) {
$ret .= t('Add group relationship to migrate_status table') . "\n";
db_add_field('migrate_status', 'group_name', array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => 'default',
'description' => 'Name of group containing migration',
));
// Populate each migration's group_name field
$groups = array();
foreach (migrate_migrations() as $machine_name => $migration) {
$group_name = $migration
->getGroup()
->getName();
if (empty($group_name)) {
$group_name = 'default';
}
$groups[$group_name] = $group_name;
db_update('migrate_status')
->fields(array(
'group_name' => $group_name,
))
->condition('machine_name', $machine_name)
->execute();
}
// Populate the migrate_group table
foreach ($groups as $group_name) {
$title = db_select('migrate_group', 'mg')
->fields('mg', array(
'title',
))
->condition('name', $group_name)
->execute()
->fetchField();
if (!$title) {
db_insert('migrate_group')
->fields(array(
'name' => $group_name,
'title' => $group_name,
'arguments' => serialize(array()),
))
->execute();
}
}
}
return $ret;
}