From 2c26e8a0ea06f9a8d8a31fadd23d0c5592db5690 Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Wed, 20 Feb 2019 15:55:53 +0100 Subject: [PATCH] fixed migration subscribers plugin --- ...grate_plus.migration.d7_allpublicfiles.yml | 2 +- ...migrate_plus.migration.d7_node_article.yml | 2 +- ...te_plus.migration.d7_node_article_i18n.yml | 2 +- ...igrate_plus.migration.d7_node_materiau.yml | 2 +- ...e_plus.migration.d7_node_materiau_i18n.yml | 2 +- ...ate_plus.migration.d7_simplenews_nodes.yml | 2 +- ...us.migration.d7_simplenews_subscribers.yml | 6 +- ...lus.migration.d7_taxonomy_term_company.yml | 2 +- ...us.migration.d7_taxonomy_term_showroom.yml | 2 +- ...e_plus.migration.d7_taxonomy_term_tags.yml | 2 +- ...s.migration.d7_taxonomy_term_tags_i18n.yml | 2 +- ...s.migration.d7_taxonomy_term_thesaurus.yml | 2 +- ...ration.d7_taxonomy_term_thesaurus_i18n.yml | 2 +- ...migrate_plus.migration.d7_user_profile.yml | 2 +- .../sync/migrate_plus.migration.d7_users.yml | 2 +- ...igrate_plus.migration_group.d7_materio.yml | 4 +- migrate-from-d7.sh | 2 +- ...us.migration.d7_simplenews_subscribers.yml | 5 +- .../source/D7SimplenewsSubscribers.php | 82 +++++++++++++++++++ 19 files changed, 107 insertions(+), 20 deletions(-) create mode 100644 web/modules/custom/materio_migrate/src/Plugin/migrate/source/D7SimplenewsSubscribers.php diff --git a/config/sync/migrate_plus.migration.d7_allpublicfiles.yml b/config/sync/migrate_plus.migration.d7_allpublicfiles.yml index 019c35d..50dd32f 100644 --- a/config/sync/migrate_plus.migration.d7_allpublicfiles.yml +++ b/config/sync/migrate_plus.migration.d7_allpublicfiles.yml @@ -1,4 +1,4 @@ -uuid: 2344f826-c47e-4923-ad65-630295fb6719 +uuid: 95015cbb-ff5e-4f86-98ad-69a8d7e0de49 langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_node_article.yml b/config/sync/migrate_plus.migration.d7_node_article.yml index f0f1949..d401eb3 100644 --- a/config/sync/migrate_plus.migration.d7_node_article.yml +++ b/config/sync/migrate_plus.migration.d7_node_article.yml @@ -1,4 +1,4 @@ -uuid: e4ed115a-f6f6-484f-a07a-5fbc7338c034 +uuid: a8711192-2221-4bb0-886b-6a952af7948d langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_node_article_i18n.yml b/config/sync/migrate_plus.migration.d7_node_article_i18n.yml index 65f627f..ade7434 100644 --- a/config/sync/migrate_plus.migration.d7_node_article_i18n.yml +++ b/config/sync/migrate_plus.migration.d7_node_article_i18n.yml @@ -1,4 +1,4 @@ -uuid: 8c1bd1fc-a0fb-4bac-a7f8-9837c0eebdc4 +uuid: be332db0-4ff0-45ac-86d1-ac8162c565b9 langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_node_materiau.yml b/config/sync/migrate_plus.migration.d7_node_materiau.yml index be9cba3..eeab2dc 100644 --- a/config/sync/migrate_plus.migration.d7_node_materiau.yml +++ b/config/sync/migrate_plus.migration.d7_node_materiau.yml @@ -1,4 +1,4 @@ -uuid: e1e2cfad-0d0d-4448-8dfb-b5e53b7d1a9f +uuid: 47872e9f-36b0-4cd5-b273-1acdfbc7dca8 langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_node_materiau_i18n.yml b/config/sync/migrate_plus.migration.d7_node_materiau_i18n.yml index de38911..6894a8d 100644 --- a/config/sync/migrate_plus.migration.d7_node_materiau_i18n.yml +++ b/config/sync/migrate_plus.migration.d7_node_materiau_i18n.yml @@ -1,4 +1,4 @@ -uuid: 04688802-34d3-48a6-83ee-1b2b584e7ee8 +uuid: a3ec42d1-12a0-4041-8fd6-52be46cc116f langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_simplenews_nodes.yml b/config/sync/migrate_plus.migration.d7_simplenews_nodes.yml index 9337570..e08d59e 100644 --- a/config/sync/migrate_plus.migration.d7_simplenews_nodes.yml +++ b/config/sync/migrate_plus.migration.d7_simplenews_nodes.yml @@ -1,4 +1,4 @@ -uuid: 3c3ccdd6-d1c4-41b7-bba0-aee4c6cedd92 +uuid: 6c6e15b5-b3d3-42c8-8ccd-10043efbac7a langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_simplenews_subscribers.yml b/config/sync/migrate_plus.migration.d7_simplenews_subscribers.yml index 5e4341e..f937cb3 100644 --- a/config/sync/migrate_plus.migration.d7_simplenews_subscribers.yml +++ b/config/sync/migrate_plus.migration.d7_simplenews_subscribers.yml @@ -1,9 +1,9 @@ -uuid: e96db13c-0d24-47c0-a7e7-8c5d60803cdc +uuid: 59a27fe9-2874-4cf6-86ec-e757f0ef29f0 langcode: en status: true dependencies: { } _core: - default_config_hash: b2MXWpch207TVNeTDT9MV-JYlCyRlkj64EIzLDHuwWo + default_config_hash: VloCz4g4ojd5g00TY-4icqkDJXC2zOYHP3ysyqL4lUQ id: d7_simplenews_subscribers class: null field_plugin_method: null @@ -15,7 +15,7 @@ migration_tags: migration_group: d7_materio label: 'Simplenews subscribers' source: - plugin: simplenews_subscriber + plugin: d7_simplenews_subscribers process: id: snid status: activated diff --git a/config/sync/migrate_plus.migration.d7_taxonomy_term_company.yml b/config/sync/migrate_plus.migration.d7_taxonomy_term_company.yml index 06f0903..874108c 100644 --- a/config/sync/migrate_plus.migration.d7_taxonomy_term_company.yml +++ b/config/sync/migrate_plus.migration.d7_taxonomy_term_company.yml @@ -1,4 +1,4 @@ -uuid: bc633efe-715f-4ea0-b4f3-ea0b229249ce +uuid: 051d650f-571f-44f0-b752-beef9af80fc5 langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_taxonomy_term_showroom.yml b/config/sync/migrate_plus.migration.d7_taxonomy_term_showroom.yml index 8a6c886..adb556a 100644 --- a/config/sync/migrate_plus.migration.d7_taxonomy_term_showroom.yml +++ b/config/sync/migrate_plus.migration.d7_taxonomy_term_showroom.yml @@ -1,4 +1,4 @@ -uuid: 4af34119-1c2f-4796-87f0-8fbab165d111 +uuid: 1dc791a4-06e7-4e79-ad8b-b2be442f5b48 langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_taxonomy_term_tags.yml b/config/sync/migrate_plus.migration.d7_taxonomy_term_tags.yml index 9a47837..02da07d 100644 --- a/config/sync/migrate_plus.migration.d7_taxonomy_term_tags.yml +++ b/config/sync/migrate_plus.migration.d7_taxonomy_term_tags.yml @@ -1,4 +1,4 @@ -uuid: b1fd039c-4272-43bb-9fa6-478fdc950fc7 +uuid: b885e080-ef2c-4732-88e6-ab6752919ee2 langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_taxonomy_term_tags_i18n.yml b/config/sync/migrate_plus.migration.d7_taxonomy_term_tags_i18n.yml index 3634961..d500d82 100644 --- a/config/sync/migrate_plus.migration.d7_taxonomy_term_tags_i18n.yml +++ b/config/sync/migrate_plus.migration.d7_taxonomy_term_tags_i18n.yml @@ -1,4 +1,4 @@ -uuid: cff5d663-2ca0-436a-9676-dd6d3bb0ca11 +uuid: d8159460-9be8-4ab9-962b-430d03040d8d langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus.yml b/config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus.yml index b941c83..b893f8f 100644 --- a/config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus.yml +++ b/config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus.yml @@ -1,4 +1,4 @@ -uuid: 2ba08bea-0803-4f85-8950-82ae27939d20 +uuid: a154291b-424f-481e-af2c-6678a8738af5 langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus_i18n.yml b/config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus_i18n.yml index d7591f1..ee48365 100644 --- a/config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus_i18n.yml +++ b/config/sync/migrate_plus.migration.d7_taxonomy_term_thesaurus_i18n.yml @@ -1,4 +1,4 @@ -uuid: 0bcd4689-eeac-4ff3-8a45-b248f8cf597a +uuid: 63451d96-d2d2-4d0d-a6e5-da85015bbbfb langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration.d7_user_profile.yml b/config/sync/migrate_plus.migration.d7_user_profile.yml index 479f249..e2c1ddc 100644 --- a/config/sync/migrate_plus.migration.d7_user_profile.yml +++ b/config/sync/migrate_plus.migration.d7_user_profile.yml @@ -1,4 +1,4 @@ -uuid: 8988f760-b08e-44eb-a4f1-3b13cf5456e3 +uuid: 8c5c8877-d9d8-44d9-ad92-c4554932cb19 langcode: en status: true dependencies: diff --git a/config/sync/migrate_plus.migration.d7_users.yml b/config/sync/migrate_plus.migration.d7_users.yml index ca28ada..ac6bcd4 100644 --- a/config/sync/migrate_plus.migration.d7_users.yml +++ b/config/sync/migrate_plus.migration.d7_users.yml @@ -1,4 +1,4 @@ -uuid: 8fe4d9e7-41f3-4010-9347-6bfd2a7317dc +uuid: 47a37723-5919-447c-b997-6cf87af11785 langcode: en status: true dependencies: { } diff --git a/config/sync/migrate_plus.migration_group.d7_materio.yml b/config/sync/migrate_plus.migration_group.d7_materio.yml index 9cc807d..d89f0e3 100644 --- a/config/sync/migrate_plus.migration_group.d7_materio.yml +++ b/config/sync/migrate_plus.migration_group.d7_materio.yml @@ -1,4 +1,4 @@ -uuid: 1e79a6e8-ab3a-4873-bf4c-a96d82faa13e +uuid: 019e4841-a5c5-4664-a259-e00ebc6510d1 langcode: en status: true dependencies: @@ -7,6 +7,8 @@ dependencies: - migrate_plus - migrate_tools - materio_migrate +_core: + default_config_hash: tbcV0glxU9BqeXcSUn9ZKXnOPW-C2v8Q-shvIJ2xNG8 id: d7_materio label: 'D7 Materio' description: 'Drupal 7 materio content migration to Drupal 8.' diff --git a/migrate-from-d7.sh b/migrate-from-d7.sh index 3df79c1..501ed46 100755 --- a/migrate-from-d7.sh +++ b/migrate-from-d7.sh @@ -62,5 +62,5 @@ sleep 5 echo " " echo "Migrating simplenews" drush mim d7_simplenews_nodes --feedback="200" -drush mim d7_simplenews_subscribers --feedback="1000" +drush mim d7_simplenews_subscribers --update --feedback="1000" sleep 5 diff --git a/web/modules/custom/materio_migrate/config/install/migrate_plus.migration.d7_simplenews_subscribers.yml b/web/modules/custom/materio_migrate/config/install/migrate_plus.migration.d7_simplenews_subscribers.yml index 8b8e724..4d9104f 100644 --- a/web/modules/custom/materio_migrate/config/install/migrate_plus.migration.d7_simplenews_subscribers.yml +++ b/web/modules/custom/materio_migrate/config/install/migrate_plus.migration.d7_simplenews_subscribers.yml @@ -13,7 +13,10 @@ migration_tags: - Materio source: - plugin: simplenews_subscriber + plugin: d7_simplenews_subscribers + # high_water_property: + # name: changes + # alias: s process: id: snid diff --git a/web/modules/custom/materio_migrate/src/Plugin/migrate/source/D7SimplenewsSubscribers.php b/web/modules/custom/materio_migrate/src/Plugin/migrate/source/D7SimplenewsSubscribers.php new file mode 100644 index 0000000..b354f61 --- /dev/null +++ b/web/modules/custom/materio_migrate/src/Plugin/migrate/source/D7SimplenewsSubscribers.php @@ -0,0 +1,82 @@ + $this->t('Subscriber ID'), + 'activated' => $this->t('Activated'), + 'mail' => $this->t('Subscriber\'s e-mail address'), + 'uid' => $this->t('Corresponding user'), + 'language' => $this->t('Language'), + 'changes' => $this->t('Pending unconfirmed subscription changes'), + 'created' => $this->t('Time of creation'), + ]; + } + + /** + * {@inheritdoc} + */ + public function getIds() { + return ['snid' => ['type' => 'integer']]; + } + + /** + * {@inheritdoc} + */ + public function query() { + return $this->select('simplenews_subscriber', 's') + ->fields('s') + ->orderBy('snid'); + } + + /** + * {@inheritdoc} + */ + public function prepareRow(Row $row) { + $result = parent::prepareRow($row); + + $version = $this->getModuleSchemaVersion('simplenews'); + $newsletter_id_field = 'newsletter_id'; + if ($version >= 7000 & $version < 7200) { + $newsletter_id_field = 'tid'; + } + + // Add associated data from the subscriptions table. + $q = $this->select('simplenews_subscription', 'sub'); + $q->addField('sub', $newsletter_id_field, 'newsletter_id'); + $q->fields('sub', ['status', 'timestamp', 'source']); + $q->condition('sub.snid', $row->getSourceProperty('snid')); + $subscriptions = $q->execute()->fetchAllAssoc('newsletter_id'); + $row->setSourceProperty('subscriptions', $subscriptions); + + return $result; + } + + /** + * {@inheritdoc} + */ + public function calculateDependencies() { + $this->dependencies = parent::calculateDependencies(); + // Declare dependency to the provider of the base class. + $this->addDependency('module', 'migrate_drupal'); + return $this->dependencies; + } + +}