Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Drupal 8 - Writing dynamic migrations

Drupal 8 - Writing dynamic migrations

Mohit Aghera

March 10, 2018
Tweet

More Decks by Mohit Aghera

Other Decks in Technology

Transcript

  1. 2 axelerant.com About Us Mohit Aghera - Does development nowadays

    in Drupal 8 and at times Behat - Known on drupal.org as mohit_aghera - Known on twitter.com as @mohit_rocks Nikunj Kotecha - Does development nowadays in Drupal 8 and at times in Magento 2 - Known on drupal.org as nikunjkotecha - Known on twitter.com as @nikunjhk
  2. 3 axelerant.com Migrations: A brief introduction What Migrate API Provides:

    • Migrate Data from source to destination • Keeps track of record of migrated data • Provides framework for writing migrations
  3. 5 axelerant.com Migration as Configuration entities • Similar to any

    configurations • Resides in [module]/config directory • Typically names are given like “migrate.migration.node_page.yml”
  4. 6 axelerant.com Migration as Configuration entities Advantages: • Easy to

    write and run • No need to write specific logic to run unlike migration templates Disadvantages: • Not much flexible • Hard to change runtime • Dynamic migration generation is not possible • Can’t generate based on user inputs
  5. 7 axelerant.com Migration as templates • Resides in [module]/migration_templates directory

    • Names could match the migration id • Typically names are given like “node_page.yml”
  6. 8 axelerant.com Migration as templates Advantages: • Much more flexible

    than configuration entities for each variation • Easy to change runtime • Ability to generate dynamic migration using reusable templates
  7. 9 axelerant.com Dynamic Migrations • Drupal 8 core uses templates

    to generate migration • When we use Drupal 7 to Drupal 8 migration upgrader it will generate migrations dynamically and import content
  8. 10 axelerant.com Deriver plugins • Works as a derivative for

    new migrations • Helps to create migrations dynamically • Extends DeriverBase class.
  9. 14 axelerant.com Use cases • Migrating large amount of sites

    with similar architecture but different languages in each site (our use case, https://github.com/mohit-rocks/drupalcamp-goa) • Core: Migrating D7 to D8 • Core: Migrating Workbench Moderation to Content Moderation (https://www.drupal.org/project/wbm2cm) • Migrating sites from Magento for instance with different attributes for each site • And many more...
  10. 15 axelerant.com Thank you … for being here and allowing

    us to contribute and share our knowledge To summarise… • We discussed how to make migrations more dynamic and less painful • We saw an example of how to write derivers • We saw advantages of doing it, it is done in Core and many contrib modules already