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 }
|