diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_node.yml index 790ecb5..9681fbb 100644 --- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node.yml +++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_node.yml @@ -13,7 +13,11 @@ process: source: language default_value: "und" title: title - uid: uid + uid: node_uid +# migrate_drupal keeps numeric entity ids. If it wouldn't then: +# plugin: migration +# migration: d6_user +# source: node_uid status: status created: created changed: changed @@ -25,7 +29,7 @@ process: source: format 'body/value': body 'body/summary': teaser - revision_uid: uid + revision_uid: revision_uid revision_log: log revision_timestamp: timestamp @@ -39,6 +43,7 @@ destination: plugin: entity:node migration_dependencies: required: + - d6_user - d6_node_type - d6_node_settings - d6_filter_format diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_revision.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_revision.yml index 824e611..443135e 100644 --- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_revision.yml +++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_node_revision.yml @@ -13,7 +13,10 @@ process: source: language default_value: "und" title: title - uid: uid + uid: + plugin: migration + migration: d6_user + source: node_uid status: status created: created changed: changed @@ -25,7 +28,10 @@ process: source: format 'body/value': body 'body/summary': teaser - revision_uid: uid + revision_uid: + plugin: migration + migration: d6_user + source: revision_uid revision_log: log revision_timestamp: timestamp diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/Node.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/Node.php index 3530a33..10ea3b4 100644 --- a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/Node.php +++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/Node.php @@ -54,7 +54,6 @@ public function query() { )) ->fields('nr', array( 'vid', - 'uid', 'title', 'body', 'teaser', @@ -62,6 +61,8 @@ public function query() { 'timestamp', 'format', )); + $query->addField('n', 'uid', 'node_uid'); + $query->addField('nr', 'uid', 'revision_uid'); $query->innerJoin('node', 'n', static::JOIN); if (isset($this->configuration['node_type'])) { @@ -90,7 +91,8 @@ public function fields() { 'body' => $this->t('Body'), 'format' => $this->t('Format'), 'teaser' => $this->t('Teaser'), - 'uid' => $this->t('Authored by (uid)'), + 'node_uid' => $this->t('Node authored by (uid)'), + 'revision_uid' => $this->t('Revision authored by (uid)'), 'created' => $this->t('Created timestamp'), 'changed' => $this->t('Modified timestamp'), 'status' => $this->t('Published'), diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTestBase.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTestBase.php index d8ab3e6..ec78a83 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTestBase.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateNodeTestBase.php @@ -37,6 +37,10 @@ protected function setUp() { array(array(1), array('filtered_html')), array(array(2), array('full_html')), ), + 'd6_user' => array( + array(array(1), array(1)), + array(array(2), array(2)), + ), 'd6_field_instance_widget_settings' => array( array( array('page', 'field_test'), diff --git a/core/modules/migrate_drupal/tests/src/Unit/source/d6/NodeByNodeTypeTest.php b/core/modules/migrate_drupal/tests/src/Unit/source/d6/NodeByNodeTypeTest.php index cb0b671..ae2123e 100644 --- a/core/modules/migrate_drupal/tests/src/Unit/source/d6/NodeByNodeTypeTest.php +++ b/core/modules/migrate_drupal/tests/src/Unit/source/d6/NodeByNodeTypeTest.php @@ -86,6 +86,10 @@ class NodeByNodeTypeTest extends MigrateSqlSourceTestCase { */ protected function setUp() { $database_contents = $this->expectedResults; + array_walk($this->expectedResults, function ($row) { + $row['node_uid'] = $row['uid']; + $row['revision_uid'] = $row['uid'] + 1; + }); $database_contents[] = array( // Node fields. @@ -115,11 +119,17 @@ protected function setUp() { // Add another row with an article node and make sure it is not migrated. foreach ($database_contents as $k => $row) { - foreach (array('nid', 'vid', 'title', 'uid', 'body', 'teaser', 'format', 'timestamp', 'log') as $i => $field) { + foreach (array('nid', 'vid', 'title', 'uid', 'body', 'teaser', 'format', 'timestamp', 'log') as $field) { $this->databaseContents['node_revisions'][$k][$field] = $row[$field]; - // Keep nid and vid. - if ($i > 1) { - unset($row[$field]); + switch ($field) { + case 'nid': case 'vid': + break; + case 'uid': + $this->databaseContents['node_revisions'][$k]['uid']++; + break; + default: + unset($row[$field]); + break; } } $this->databaseContents['node'][$k] = $row; diff --git a/core/modules/migrate_drupal/tests/src/Unit/source/d6/NodeTest.php b/core/modules/migrate_drupal/tests/src/Unit/source/d6/NodeTest.php index 81e84cd..b2621be 100644 --- a/core/modules/migrate_drupal/tests/src/Unit/source/d6/NodeTest.php +++ b/core/modules/migrate_drupal/tests/src/Unit/source/d6/NodeTest.php @@ -109,15 +109,25 @@ class NodeTest extends MigrateSqlSourceTestCase { */ protected function setUp() { foreach ($this->expectedResults as $k => $row) { - foreach (array('nid', 'vid', 'title', 'uid', 'body', 'teaser', 'log', 'timestamp', 'format') as $i => $field) { + foreach (array('nid', 'vid', 'title', 'uid', 'body', 'teaser', 'format', 'timestamp', 'log') as $field) { $this->databaseContents['node_revisions'][$k][$field] = $row[$field]; - // Keep nid and vid. - if ($i > 1) { - unset($row[$field]); + switch ($field) { + case 'nid': case 'vid': + break; + case 'uid': + $this->databaseContents['node_revisions'][$k]['uid']++; + break; + default: + unset($row[$field]); + break; } } $this->databaseContents['node'][$k] = $row; } + array_walk($this->expectedResults, function ($row) { + $row['node_uid'] = $row['uid']; + $row['revision_uid'] = $row['uid'] + 1; + }); parent::setUp(); }