annotate modules/contrib/migrate_plus/migrate_plus.install @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents c75dbcec494b
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 /**
Chris@0 4 * @file
Chris@0 5 * Install, update, and uninstall functions for migrate_plus.
Chris@0 6 */
Chris@0 7
Chris@0 8 /**
Chris@0 9 * Converts 8.0.x core migration entities to 8.1.x migrate_plus entities.
Chris@0 10 */
Chris@0 11 function migrate_plus_update_8100() {
Chris@0 12 // We cannot use the configration entity system directly, because the entity
Chris@0 13 // type migrate.migration.* no longer exists - we must directly manipulate
Chris@0 14 // the config table.
Chris@0 15 $database = \Drupal::database();
Chris@0 16 $migration_config = $database->select('config', 'c')
Chris@0 17 ->fields('c', ['name', 'data'])
Chris@0 18 ->condition('name', 'migrate.migration.%', 'LIKE')
Chris@0 19 ->execute();
Chris@0 20 foreach ($migration_config as $migration) {
Chris@0 21 $data = unserialize($migration->data);
Chris@0 22 if (isset($data['third_party_settings']['migrate_plus']['migration_group'])) {
Chris@0 23 $data['migration_group'] = $data['third_party_settings']['migrate_plus']['migration_group'];
Chris@0 24 unset($data['third_party_settings']['migrate_plus']);
Chris@0 25 if (empty($data['third_party_settings'])) {
Chris@0 26 unset($data['third_party_settings']);
Chris@0 27 }
Chris@0 28 $new_name = str_replace('migrate.migration.', 'migrate_plus.migration.', $migration->name);
Chris@0 29 $database->update('config')
Chris@0 30 ->fields([
Chris@0 31 'name' => $new_name,
Chris@0 32 'data' => serialize($data),
Chris@0 33 ])
Chris@0 34 ->condition('name', $migration->name)
Chris@0 35 ->execute();
Chris@0 36 }
Chris@0 37 }
Chris@0 38 }