Problem/Motivation

We want to provide an upgrade path from the Drupal 7 feeds module to Drupal 8.

Proposed resolution

Implement migrations from:

  • D7 feed importers to D8 Feed types
  • D7 feeds to D8 Feeds
  • D7 feed items records to D8 feed item fields (the d7_node migration will already have migrated the nodes)

Remaining tasks

We need to support the following parsers:

  • FeedsCSVParser
  • FeedsSyndicationParser
  • FeedsOPMLParser
  • FeedsSimplePieParser
  • FeedsSitemapParser

We need to support the following processors:

  • FeedsNodeProcessor
  • FeedsUserProcessor
  • FeedsTermProcessor

The field mappings also need to figure out if the target field is a reference field, to use 'target_id' instead of 'value'.

The D7 generic config (variables) also needs to be migrated into D8 config.

Issue fork feeds-3008991

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

jcnventura created an issue. See original summary.

jcnventura’s picture

Status: Active » Needs work
StatusFileSize
new28.93 KB

This is just a WIP that I want to share for now. There's a few things that already work, and others that fail miserably.

jcnventura’s picture

Issue summary: View changes
megachriz’s picture

Cool, thanks for working on this, @jcnventura!

jcnventura’s picture

jcnventura’s picture

Issue summary: View changes
StatusFileSize
new3.6 KB
new29.65 KB

Slightly improved version that detects if the destination field is an entity reference field.

jcnventura’s picture

Issue tags: +Needs tests
oppure’s picture

Hello and thank you for working on this patch, I'm trying to upgrade a site with a lot of feeds importers from D7 to D11.
I managed to install the patch using composer but on the third step of migration I get the following wrror:

The website encountered an unexpected error. Try again later.

Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: You have requested a non-existent service "plugin.manager.migrate.cckfield". Did you mean one of these: "plugin.manager.migrate.source", "plugin.manager.migration", "plugin.manager.image.effect", "plugin.manager.migrate.process", "plugin.manager.migrate.destination", "plugin.manager.migrate.id_map", "plugin.manager.migrate.field", "plugin.manager.views.field"? in Drupal\Component\DependencyInjection\Container->get() (line 157 of core/lib/Drupal/Component/DependencyInjection/Container.php).

Drupal\feeds\Plugin\migrate\D7FeedDeriver::create() (Line: 25)
Drupal\Core\Plugin\Discovery\ContainerDerivativeDiscoveryDecorator->getDeriver() (Line: 99)
Drupal\Component\Plugin\Discovery\DerivativeDiscoveryDecorator->getDerivatives() (Line: 87)
Drupal\Component\Plugin\Discovery\DerivativeDiscoveryDecorator->getDefinitions() (Line: 255)
Drupal\migrate\Plugin\MigrationPluginManager->findDefinitions() (Line: 213)
Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (Line: 135)
Drupal\migrate\Plugin\MigrationPluginManager->createInstancesByTag() (Line: 125)
Drupal\migrate_drupal_ui\Form\MigrateUpgradeFormBase->getMigrations() (Line: 444)
Drupal\migrate_drupal_ui\Form\CredentialForm->setupMigrations() (Line: 337)
Drupal\migrate_drupal_ui\Form\CredentialForm->validateForm()
call_user_func_array() (Line: 82)
Drupal\Core\Form\FormValidator->executeValidateHandlers() (Line: 274)
Drupal\Core\Form\FormValidator->doValidateForm() (Line: 118)
Drupal\Core\Form\FormValidator->validateForm() (Line: 585)
Drupal\Core\Form\FormBuilder->processForm() (Line: 321)
Drupal\Core\Form\FormBuilder->buildForm() (Line: 73)
Drupal\Core\Controller\FormController->getContentResult()
call_user_func_array() (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 593)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 121)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 183)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 53)
Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle() (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle() (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 36)
Drupal\Core\StackMiddleware\AjaxPageState->handle() (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle() (Line: 709)
Drupal\Core\DrupalKernel->handle() (Line: 19)

sahal_va made their first commit to this issue’s fork.